二重引用符なしまたは二重引用符付きで使用する場合、bashはバックスラッシュを同じように扱うといつも思っていましたが、間違っていました:
[[email protected] ~]$ echo "foo \ "
foo \
[[email protected] ~]$ echo foo \ # Space after \
foo
したがって、二重引用符を使用する場合、バックスラッシュは常に印刷されると思いましたが、:
[[email protected] ~]$ echo "foo \" "
foo "
[[email protected] ~]$ echo "foo \\ "
foo \
最初のコード行にバックスラッシュが表示されているのはなぜですか?
承認された回答:
セクション3.1.2.3GNUBashマニュアルの二重引用符は次のように述べています:
バックスラッシュは、次の文字のいずれかが後に続く場合にのみ、その特別な意味を保持します:‘
$’、‘`’、‘"’、‘\’、またはnewline。二重引用符で囲まれた場合、これらの文字の1つが続く
円記号は削除されます。特別な意味のない
前の文字のバックスラッシュは変更されません。二重引用符は、その前に円記号を付けることにより、二重引用符内で
引用符で囲むことができます。
を有効にすると、「!」でない限り、履歴の拡張が実行されます。 ’が
二重引用符で囲まれている場合は、円記号を使用してエスケープします。
「!」の前の円記号 ’は削除されません。
したがって、 \ 二重引用符で囲む場合は、 \とは異なる方法で処理されます。 一重引用符と\ 引用符の外側。文字を文字どおりに処理する位置にある場合を除いて、文字通りに処理されます。そうでない場合は、二重引用符で特別な意味を持つ可能性があります。
\'のようなシーケンスに注意してください 、 \?コード> 、および \ * 'のため、文字通りに扱われ、円記号は削除されません。 、?コード> および* 二重引用符で囲むと、すでに特別な意味はありません。
Lum –出力をPrintfのフォーマットされた印刷のようにフォーマットする方法は?
実際のビデオをダウンロードせずに、Youtube-dlを使用してInfo-jsonファイルだけをダウンロードする方法は?