Skip to content
Na tej stronie

Literały i argumenty – Tworzenie skryptów Bash, krok po kroku.

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.

Czym różni się lista argumentów od wejścia?

Lista argumentów jest przekazywana do skryptu w momencie wywoływania, wraz z całym poleceniem.

bash
bash skrypt.sh Argument1 Argument2 Argument3
bash skrypt.sh Argument1 Argument2 Argument3

Argumentami skryptu w powyższym wywołaniu jest lista składająca się z elementów Argument1, Argument2, Argument3.

Należy odróżnić je od wejścia do skryptu. Wejście jest pobierane w trakcie działania samego skryptu. W powyższym przykładzie skrypt pobiera wejście bezpośrednio z terminala.

Argumenty są ustawiane przy wywołaniu skryptu, podczas gdy wejście jest pobierane w trakcie działania skryptu.

Argumenty i wejście mogą też być przyjmowane przez funkcje i różnica jest analogiczna.

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.

Cytowanie tekstu

Spacja w powłoce Bash oddziela od siebie kolejne argumenty. Aby tekst ze spacją uznać za jeden argument, należy go zacytować, za pomocą cudzysłowu.

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.

Operator dolara

Tekst wewnątrz cudzysłowu podwójnego może zawierać wartości wypełniane przez Basha. Do tego będzie służył operator dolara $.

bash
imie=Jacek
echo "Witaj $imie"
imie=Jacek
echo "Witaj $imie"

Alternatywną składnią wstawienia wartości zmiennej jest ${zmienna}.

bash
rozmiar=50
jednostka=m
echo "Wysokość drzewa: ${rozmiar} [${jednostka}]"
rozmiar=50
jednostka=m
echo "Wysokość drzewa: ${rozmiar} [${jednostka}]"
Wysokość drzewa: 50 [m]
Wysokość drzewa: 50 [m]

Przechwycenie wyjścia komendy

Możemy przechwycić wyjście komendy jako listę argumentów dla innej komendy

bash
nano "$(ls | grep Dok)"
nano "$(ls | grep Dok)"
Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.

Wstawienie znaków specjalnych

Możemy wstawić znak specjalny wewnątrz cytowanego w cudzysłowie podwójnym poprzez jedną z poniższych sekwencji wewnątrz każdego tekstu (literału).

SekwencjaZnak specjalny
\$Znak dolara $
\nZnak nowej linii
\tTabulator
\\Ukośnik wsteczny \
\"Cudzysłów podwójny "

W miejsce sekwencji zostanie wstawiony znak specjalny – specjalny dlatego, że jest trudny do napisania za pomocą standardowej klawiatury.

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.

Wewnątrz cudzysłowu pojedynczego możemy wstawić sam cudzysłów za pomocą sekwencji \'