シェルのコマンド置換の内部でのコメント [sh]
シェルのパーサーを書こうとしていていたのだけどマニュアルから読み取れないところはどうしても動かして実地調査するしかない。 シェルのコマンド置換の内部にコメントを書いて、そのコメントの中にコマンド置換の終端記号が来た場合、終端記号が勝つのかコメントが勝つのかという問題を調べた。
つまりこういうのを試す。
echo $(echo hello # comment)
echo $(echo hello
# comment)
echo `echo hello # comment`
echo `echo hello
comment`
結果
$ echo $(echo hello # comment)
> )
hello
$ echo $(echo hello
> # comment)
> )
hello
$ echo `echo hello # comment`
hello
$ echo `echo hello
> # comment`
hello
つまりダラーの場合はコメントのほうが勝って、バッククォートの場合はバッククォートのほうが勝つ。 bashでもksh93でもzshでも同様の動き。
めんどくさい… 忘れないようにメモしておく。
2014-08-05 00:50
nice!(0)
コメント(0)
トラックバック(0)
コメント 0