バックスラッシュの意味

バックスラッシュの意味

以下のコマンドが印刷されますが、Smith印刷されないのはなぜですか\Smith

echo \Smith

ベストアンサー1

これバックスラッシュはシェル構文のエスケープ文字です。それ:

<newline>を除いて、後続の文字はリテラル値のままにする必要があります。 ... <バックスラッシュ> ...削除する必要があります。

改行文字やエスケープできるシェル特殊文字( 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 または タブ)ではないため、\S同じ意味を持ちますS。与えられた引数にリテラルバックスラッシュを含めるには、順番に、または別の引用演算子を使用してエスケープします。S$"'{[`\|&;<>()?*[#~=%echo\

echo \\Smith

または

echo '\Smith'

または

echo "\Smith"

\特別な意味は依然として二重引用符内に保持されますが、後ろにあるときは維持されず、後に、Sまたは\改行文字が来るときにのみ保持されます。`$"

多くのecho実装では、\引数で見つかったときに特別な処理を実行します(通常は従わないがS保証されません)、次のように使用できますprintf

printf '%s\n' '\Smith'

注:これは例で参照されていないケースに対して指定された動作ですが、別の方法で参照することも、ファイル内でread変更することもできます。

おすすめ記事