Re: [Q] 便乗質問 sh の \%->% って何で必要?( Re: cron で逆シングルクォーテーションを使いたい)
Takahide Nojima <nojima@taito.co.jp> writes:
> 教えて君になって申し訳ないのですが、マニュアル引っくりかえしても、
> サーチエンジンでもわからないのでお聞きします。
>
> [Q] shで\%を%に自動で解釈する仕様って何故存在するのでしょうか?
> この動作が必要となる理由(cronの振舞い以外で)ってどなたか
> ご存じでしょうか?
shell は \ を escape charactor として解釈します。$ や ' などをそ
のままの文字として扱いたい場合、\$、\' としますよね。たとえば、
echo \$ は $ を表示します。これと同様に \% は % をそのままの文字
として扱うというだけの意味です。
つまり、$ のように、本来なら特別な処理をすべき文字を、文字そのも
のとして扱うだけにとどめるというだけですので、特に % だからどう
ということではありません。
\ の例外は \ の後に改行がきた場合で、この場合は改行を削除してし
まいます。(まだ例外があるかも知れませんが)
また、"" や '' 内で \ が使用された場合はちょっと違いまして、\ 自
身は削除されません。
猿丸さんの記事にもありましたが、"" 内の \ を削除するには eval で
可能です。
たぶんこのへんのことは全て man sh すれば書いてあるはずですので、
ご自分で調べてみてください。(man bash かな?)
# 私はかなりいい加減に書いてますんで、鵜呑みにしないほうがよろ
# しいかということもありますんで... ^^;
--
12/21 15:28頃
水戸
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735