W sekcji 3.1.2.3, zatytułowanej Podwójne cytaty, instrukcja Bash mówi:
Umieszczanie znaków w podwójnych cudzysłowach („” ”) zachowuje dosłowną wartość wszystkich znaków w cudzysłowach, z wyjątkiem„ $ ”,„ „”, „\”, a gdy włączone jest rozszerzanie historii, „!”.
W tej chwili interesuje mnie pojedynczy cytat ( '
).
Jego specjalne znaczenie, opisane w poprzedniej sekcji, sekcja 3.1.2.2, to:
Umieszczanie znaków w pojedynczych cudzysłowach (
'
) zachowuje dosłowną wartość każdego znaku w cudzysłowach. Pojedynczy cytat może nie wystąpić między pojedynczymi cudzysłowami, nawet jeśli poprzedzony jest odwrotnym ukośnikiem.
Łącząc dwie ekspozycje,
echo "'$a'"
gdzie zmienna a
nie jest zdefiniowana (stąd $a
= ciąg zerowy), powinna zostać wydrukowana $a
na ekranie, ponieważ ''
mając w środku swoje specjalne znaczenie, chroniłaby $
przed specjalną interpretacją. Zamiast tego drukuje ''
. Dlaczego tak?
’, ‘\’, and, when history expansion is enabled, ‘!’." in the manual. But now reading it again I realized the second character is not single quote, ("'") but tilde ("
”).