3

Makefile 内で、引数として NULL バイトを渡したいシェル コマンドを実行します。次の試行は失敗します。

echo $(shell /bin/echo -n $$'\x00' | ruby -e "puts STDIN.read.inspect")

以下を生成します。

echo "$\\x00"

代わりに私は期待しました:

echo "\u0000"

このような NULL バイトを適切にエスケープするにはどうすればよいですか?

4

5 に答える 5

7

execve(2) のセマンティクスにより、null バイトを含む文字列を引数として渡すことはできません。各引数文字列はヌル バイトで終了するため、含まれているヌル バイトと文字列の末尾を区別できません。

于 2013-06-14T12:55:31.993 に答える