Znaki cytowania służą do usuwania interpretacji znaków specjalnych (takich jak $\n
! i innych) przez powłokę.
Wyróżniamy nastepujące znaki cytowania:
" "
- Między cudzysłowami umieszcza się tekst, wartości zmiennych zawierające spacje.
Podpowiedź
Cudzysłowy zachowują znaczenie specjalne trzech znaków:
$
– wskazuje na nazwę zmiennej, umożliwiając podstawienie jej wartości\
– znak maskujący` `
– odwrotny apostrof, umozliwia zacytowanie polecenia
Przykład
#!/bin/bash
x=2
echo "Wartość zmiennej x to $x" #wydrukuje tekst "Wartość zmiennej x to 2"
echo -ne "Usłyszysz dzwonek\a"
echo "Polecenie date pokaże: `date`"
' '
– Wszystko co ujęte w znaki apostrofu traktowane jest jak łańcuch tekstowy, apostrof wyłącza interpretowanie wszystkich znaków specjalnych (są one traktowane jak zwykłe znaki).
Przykład
#!/bin/bash
echo '$USER' #nie wypisze twojego loginu
` `
– umożliwia zacytowanie polecenia, bardzo przydatne jeśli chce się podstawić pod zmienną wynik jakiegoś polecenia np:
Przykład
#!/bin/bash
x=`ls -la $PWD`
echo $x #pokaże rezultat polecenia
Alternatywny zapis, który ma takie samo działanie wygląda tak:
#!/bin/bash
echo $(ls -la $PWD)
\
– By na ekranie pojawił się napis $HOME, możesz napisać go w apostrofach ale równie dobrze możesz zamaskować pierwszy jego znak, tak jak to pokazane jest w przykładzie.
Przykład
echo "$HOME" #wydrukuje /home/ja
echo \$HOME #i jest napis $HOME
echo '$HOME' #i jest napis $HOME
Postawienie znaku backslash \
na końcu wiersza informuje powłokę, że dana linijka jest kontynuowana w następnym wierszu (normalnie następny wiersz to następna instrukcja). Dzięki temu nie musimy pisać długich wierszy, które przeszkadzają w wygodnym edytowaniu i oglądaniu pliku (nie wszystkie edytory obsługują automatyczne zawijanie).
- Here documents (dokumenty miejscowe) – Jest to rodzaj przekierowania, które pozwala część treści skryptu traktować jako standardowe wejście.
Składnia:
<<ograniczenie
here-document
ograniczenie
Przykład
#!/bin/sh
cat << _EOF
Ten tekst zostanie
wyświetlony na ekranie
ogranicznikiem jest _EOF
_EOF
Po uruchomieniu powyższego skryptu otrzymamy na ekranie wszystko to co zawarliśmy między _EOF
. Ten sposób może być używany do wyświetlenia większej ilości informacji na ekran bez konieczności wpisywania polecenia echo w każdej linii.
Podpowiedź
Ogranicznik końcowy musi znaleźć się sam w jednej linii. Ogranicznikiem moze być dowolne wyrażenie, ale najczęściej stosowane jest _EOF
.