Istnieją trzy mechanizmy cytowania: znak zmiany znaczenia , pojedyncze cudzysłowy i podwójne cudzysłowy.
Niecytowany ukośnik odwrotny ( \ ) to
znak zmiany znaczenia . Zachowuje dosłowną wartość następnego następującego znaku, z wyjątkiem <nowej linii>. Jeśli pojawi się para \ <nowa linia>, a sam odwrotny ukośnik nie jest cytowany, \ <nowa linia> jest traktowana jako kontynuacja linii (to znaczy jest usuwana ze strumienia wejściowego i skutecznie ignorowana).
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.
Załączając znaków w cudzysłowy chroni dosłowne wartości wszystkich znaków wewnątrz cudzysłowów, z wyjątkiem $ , ` , \ , a gdy ekspansja historia jest włączona ! . Znaki $ i ` zachowują swoje specjalne znaczenie w podwójnych cudzysłowach. Ukośnik odwrotny zachowuje swoje specjalne znaczenie tylko wtedy, gdy następuje po nim jeden z następujących znaków: $ , ` , " ,
\ lub <nowa linia> . Podwójny cudzysłów można cytować w podwójnych cudzysłowach, poprzedzając go odwrotnym ukośnikiem. Jeśli jest włączony, rozszerzenie historii zostaną wykonane, chyba że! występowanie w podwójnych cudzysłowach jest poprzedzane znakiem odwrotnego ukośnika. Odwrotny ukośnik poprzedzający ! nie jest usuwany.
Parametry specjalne * i @ mają specjalne znaczenie w cudzysłowach (patrz PARAMETRY poniżej).
Słowa w postaci $ „ string ” są traktowane specjalnie. Słowo jest interpretowane jako ciąg znaków , z zastąpionymi znakami odwrotnego ukośnika zgodnie ze standardem ANSI C. Sekwencje specjalne odwrotnego ukośnika, jeśli są obecne, są dekodowane w następujący sposób:
\ a alarm (dzwon)
\ b cofania
\ e
\ e charakter ucieczki
\ f wysuwu
\ n nowej linii
\ r karetki
\ t poziomej zakładka
\ v karta pionowe
\\ ukośnikowe
\” apostrof
\” podwójnie cytat
\ nnn ośmiobitowy znak, którego wartość jest wartością ósemkową nnn
(od jednej do trzech cyfr)
\ x HH ośmiobitowy znak, którego wartością jest wartość szesnastkowa HH
(jedna lub dwie cyfry szesnastkowe)
\ u hhhh się (10646 ISO / IEC) znak Unicode, którego wartość jest
wartość szesnastkowa HHHH (jedna do czterech cyfr szesnastkowych)
\ U HHHHHHHH
znak Unicode (ISO / IEC 10646), którego wartość wynosi
wartość szesnastkowa HHHHHHHH (od jednej do ośmiu cyfr szesnastkowych)
\ c x kontrola- znak x
Rozwinięty wynik jest cytowany pojedynczo, tak jakby znak dolara nie był obecny.
Ciąg cudzysłowu poprzedzony znakiem dolara ( $ „ ciąg ” ) spowoduje, że zostanie on przetłumaczony zgodnie z bieżącymi ustawieniami narodowymi. Jeśli bieżące ustawienia narodowe to C lub POSIX , znak dolara jest ignorowany. Jeśli ciąg zostanie przetłumaczony i zastąpiony, zamiennik zostanie podany w cudzysłów.
"$HOME"
lub parametrów"${USER:-root}"
, zastąpienie polecenia albo w postaci"$(date)"
lub"`date`"
, arytmetycznego"$((1 + 2))"
rozszerzalności historii"!!"
lub odwróconą ucieczki"\\"
. Zamiast tego użyj pojedynczych cudzysłowów. Zobacz stronę manuala bash, rozdział zatytułowany „Cytowanie”.