Cytowanie

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:

  1. $ — wskazuje na nazwę zmiennej, umożliwiając podstawienie jej wartości
  2. \ — znak maskujący
  3. ` ` — 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".

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License