ベストアンサー1
\
シェルの参照演算子です。他のタイプの引用符の外にある場合(改行文字でない場合)\x
と同じです。'x'
x
だから:
echo \\\x
ように:
echo '\''x'
または
echo '\x'
So はecho
2 つの引数で呼び出されます。 1つはecho
(名前)を含み、もう1つはを含みます\x
。
POSIXによるとecho
、オペランド(コマンド名以外の引数)にバックスラッシュが含まれている-n
場合、または最初のオペランドが指定されていない場合、動作は指定されません。他にも行動が違うことがわかります。
上記リンクのXSIを適用するUNIX仕様によれば、標準エスケープシーケンスの1つではないecho '\z'
ため、動作も指定されません。\z
ただし、UNIX準拠の組み込み関数echo
(たとえば)を使用すると、次のことが保証されます。echo
bash -o posix -O xpg_echo
echo '\\z'
それは次のとおりです。
echo \\\\z
または:
echo \\\\\z
出力されます\z<newline>
。
それ以外は、POSIXからの保証はありません。
実装はz
またはまたはまたは\z
NULno such escape sequence: \z
文字を出力できます。
しかし、実際に私は\z
エスケープシーケンスを理解する実装を認識していないので、私が試したすべての実装がそこから出力されることを発見しました\z<newline>
。
移植可能で安定したテキスト出力方法が必要な場合は、使用せず、echo
代わりにprintf
使用してください。