しらいです。

In article <m3ekuy7hss.fsf@kzin.dip.jp>, Mito  <co_mon@ybb.ne.jp> wrote:
>また、"" や '' 内で \ が使用された場合はちょっと違いまして、\ 自
>身は削除されません。

 Bourne shell の眷族では '' と "" の意味は異なりますよ。例
えば「echo '$HOME'」と「echo "$HOME"」の違いを確認してみて下
さい。このことは man page にも載っている筈です。

 '' は全ての文字を純粋に文字として扱うため、meta character
が存在せず、それ故「\」も escape character ではありません。
一方 "" は「$」や「`」を meta charaster として扱いますので、
それらの meta character を純粋に文字として扱うために「\」が
escape character として扱われます。
 結果として、「$」「`」「\」「"」の 4 文字については、"" の
中で純粋に文字として扱うためには、それぞれ「\$」「\`」「\\」
「\"」と記述する必要があります。逆にこれ以外の文字を "" の中
で「\」で冠しても「\」は escape character たり得ませんので、
「\a」のように「\」+「文字」として扱われます。

 因みに、'' が escape character を持たないという事実は、同
時に '' の中に「'」自身を純粋に文字として表現する手段が存在
しないことも意味します。
 "" 中の「"」は上述のように「\"」として記述可能ですが、同様
のことが '' の中では出来ません。"" や '' を入れ子に用いる場
合には、こういった仕様を踏まえた上で配慮する必要があります。


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

 man page にはそこまで詳しくは書かれていません。POSIX でも
規定されていないので、多分実装依存で構わないのだと思います。
実際は Bourne shell の仕様に合わせていることが多いですけどね。
-- 
                                               しらい たかし