次の行を C ベースのシステムから Unix コマンド ラインにエスケープして、この正確な行が Unix で使用されるようにするにはどうすればよいでしょうか。
tr "\304\305\326" "\134\135\136" </stx/users/n/tmp/tmpfile1.tmp>/stx/users/n/tmp/tmpfile2.tmp
最も明白なのは次のとおりです。
build("|tr \"\\304\\305\\326\" \"\\134\\135\\136\", "<", tmp1, ">", tmp2")
しかし、実行すると、Unix でファイルが見つからないというエラーが発生します。余分な\"を取り除くとOKなファイルに書き込めるのですが、問題は文字列の置換がうまくいかないことです。上記の行で、文字の置換はOKです。
8 進文字にアポストロフィを使用することはできません。これは、システムがそれらを実際の文字として渡すためです。\326の代わりにÖ
関数「ビルド」は、使用中の C ベース システムの関数です。基本的に文字列ビルダー。パイプは、Unix でコマンドを実行するために使用されます。