「二重引用符」というセクション3.1.2.3では、Bashマニュアルは次のように述べています。
文字を二重引用符( ''')で囲むと、履歴拡張が有効になっている場合は、 '$'、 '''、 '\'、および '!'以外の引用符内のすべての文字のリテラル値が保持されます。
現在、私の興味は一重引用符('
)です。
前のセクションセクション3.1.2.2で説明した特別な意味は次のとおりです。
文字を一重引用符(
'
)で囲むと、引用符内の各文字のリテラル値が保持されます。前にバックスラッシュがある場合でも、一重引用符の間に一重引用符を使用することはできません。
これら二つの議論を総合すると、
echo "'$a'"
変数がa
定義されていない場合(したがって= null文字列)、内部的に特別な解釈を隠す特別な意味があるため、画面に印刷する必要があります$a
。代わりにこれが印刷されます。なぜですか?$a
''
$
''
ベストアンサー1
'
例の一重引用符文字は二重引用符()で囲まれているecho
ため、リテラル値を取り、意味を失います。"
囲まれた文字は二重引用符です。
あなたができることは、単一引用符を個別に印刷することです:
echo "'"'$a'"'"
または脱出するには$
:
echo "'\$a'"