Znaki cytowania służą do usuwania interpretacji znaków specjalnych (takich jak $ \n ! i innych) przez powłokę.
Wyróżniamy nastepujące znaki cytowania:
Cudzysłów (ang. double quote)
- " "
- Między cudzysłowami umieszcza się tekst, wartości zmiennych zawierające spacje.
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 Wartość zmiennej x to 2
echo -ne "Usłyszysz dzwonek\a"
echo "Polecenie date pokaże: `date`"
apostrof (ang. single quote)
- ' '
- Wszystko co ujęte w znaki apostrofu traktowane jest jak łańcuch tekstowy, apostrof wyłącza interpretowanie wszystkich znaków specjalnych, traktowane są jak zwykłe znaki.
Przykład
#!/bin/bash
echo '$USER' #nie wypisze twojego loginu
odwrotny apostrof (ang. backquote)
- ` `
- 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)
backslash, czyli znak maskujący
- \
- 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
- 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 echo w każdej linii.
Ważne: Ogranicznik końcowy musi znaleźć się sam w jednej linii. Ogranicznikiem moze być dowolne wyrażenie, ale najczęściej stosowane jest "_EOF".





