作者: Zazel
日時: 2006/3/06(22:02)
Zazelです。

=== 藤岡和夫 <kazuf@...> さんが書かれた
=== <20060306202239.F9D9.KAZUF@...> にて

> >     gawk "BEGIN{print \"%"PATH%\"}
> 
>  これがなぜ動くのか、解説をお願いします(^^;)

明確に仕様が書かれた文章は知りませんが、環境変数の展開をしてから
「"」を削除しつつ「\"」を「"」に替えて引数分解していると思います。

http://www.microsoft.com/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/ntcmds_shelloverview.asp
http://www.microsoft.com/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/cmd.asp
ここにもあまり書いてない。

ただ、置換規則はそう単純ではないようです。

    gawk "BEGIN{print "^"abc\"}

は動くのに、

    gawk "BEGIN{print "^"abc^"}

は動かない。ペアになっていない二重引用符の扱いとかいろいろ。

また「^^」などを二重引用符と同時に処理してるかはわかりません。
echo での挙動をみていると、二重引用符より前らしいですがね。

(* SEKI Masatoshi  //  Zazel                      *)
(*  Would you hold my hand? Softly, let's linger. *)