Takahide Nojima <nojima@taito.co.jp> writes:

>  教えて君になって申し訳ないのですが、マニュアル引っくりかえしても、
> サーチエンジンでもわからないのでお聞きします。
> 
>  [Q] shで\%を%に自動で解釈する仕様って何故存在するのでしょうか?
>      この動作が必要となる理由(cronの振舞い以外で)ってどなたか
>      ご存じでしょうか?

shell は \ を escape charactor として解釈します。$ や ' などをそ
のままの文字として扱いたい場合、\$、\' としますよね。たとえば、
echo \$ は $ を表示します。これと同様に \% は % をそのままの文字
として扱うというだけの意味です。

つまり、$ のように、本来なら特別な処理をすべき文字を、文字そのも
のとして扱うだけにとどめるというだけですので、特に % だからどう
ということではありません。

\ の例外は \ の後に改行がきた場合で、この場合は改行を削除してし
まいます。(まだ例外があるかも知れませんが)

また、"" や '' 内で \ が使用された場合はちょっと違いまして、\ 自
身は削除されません。

猿丸さんの記事にもありましたが、"" 内の \ を削除するには eval で
可能です。

たぶんこのへんのことは全て man sh すれば書いてあるはずですので、
ご自分で調べてみてください。(man bash かな?)

# 私はかなりいい加減に書いてますんで、鵜呑みにしないほうがよろ
# しいかということもありますんで... ^^;

-- 
12/21 15:28頃
水戸