Istnieją trzy mechanizmy cytowania: znak escape, cudzysłów pojedynczy i cudzysłów podwójny.
Niecytowany odwrotny ukośnik ( ** ) jest znakiem escape. Zachowuje on dosłowną wartość następnego znaku, z wyjątkiem .
Zawieranie znaków w pojedynczych cudzysłowach zachowuje dosłowną wartość każdego znaku wewnątrz cudzysłowu. Pojedynczy cudzysłów nie może występować pomiędzy pojedynczymi cudzysłowami, nawet gdy jest poprzedzony odwrotnym ukośnikiem.
Ujęcie znaków w cudzysłów zachowuje dosłowną wartość wszystkich znaków w cudzysłowie, z wyjątkiem $ , ` , ** , and, when history expansion is enabled, **!. The characters $ and ` zachowują swoje specjalne znaczenie w cudzysłowie. Odwrotny ukośnik zachowuje swoje specjalne znaczenie tylko wtedy, gdy występuje po nim jeden z następujących znaków: $ , ` , “ , **** lub <newline. Podwójny cudzysłów może być cytowany wewnątrz cudzysłowów przez poprzedzenie go odwrotnym ukośnikiem. Jeżeli jest włączona, to interpretacja historii będzie wykonywana, chyba że **! występujące w cudzysłowach zostanie usunięte przy pomocy odwrotnego ukośnika. Odwrotny ukośnik poprzedzający ! nie jest usuwany.
Parametry specjalne @ i @ mają specjalne znaczenie, gdy znajdują się w cudzysłowach (zobacz PARAMETRY poniżej).
Słowa w postaci $‘ string ’ są traktowane specjalnie. Słowo interpretowane jest jako string, przy czym znaki odwrotnego ukośnika zastępowane są znakami określonymi przez standard ANSI C. Sekwencje ucieczki przed odwrotnym ukośnikiem, jeśli występują, są dekodowane w następujący sposób:
**\a** alert (bell) **\b** backspace **\e**** \E **an escape character** \f **form feed** \n **new line** \r **carriage return** \t **horizontal tab** \v **vertical tab** \ **backslash**
Zinterpretowany wynik jest cytowany pojedynczo, tak jakby znak dolara nie występował.
Podwójnie cytowany łańcuch poprzedzony znakiem dolara ( **$"** _string_ **"** ) spowoduje, że łańcuch zostanie przetłumaczony zgodnie z bieżącym locale. Jeśli bieżącym locale jest **C** lub **POSIX** , znak dolara jest ignorowany. Jeśli łańcuch zostanie przetłumaczony i zastąpiony, to zamiana jest cytowana podwójnie. **single quote** \" **double quote** \**_nnn_ the eight-bit character whose value is the octal value _nnn_ (one to three digits)**\x**_HH_ the eight-bit character whose value is the hexadecimal value _HH_ (one or two hex digits)**\u**_HHHH_ the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _HHHH_ (one to four hex digits)**\U**_HHHHHHHH_ the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _HHHHHHHH_ (one to eight hex digits)**\c**_x_ a control-_x_ character
Zinterpretowany wynik jest cytowany pojedynczo, tak jakby znak dolara nie występował.
Podwójnie cytowany łańcuch poprzedzony znakiem dolara ( $” string “ ) spowoduje, że łańcuch zostanie przetłumaczony zgodnie z bieżącym locale. Jeśli bieżącym locale jest C lub POSIX , znak dolara jest ignorowany. Jeśli łańcuch zostanie przetłumaczony i zastąpiony, to zamiana jest cytowana podwójnie.