Cygal.net.pl

Systemy, Sieci i takie tam :)

Zmienne specjalne w Bashu




Bash posiada tak zwane zmienne specjalne, które bardzo często przydają się nam gdy piszemy jakiś skrypt. Dzięki zmiennym specjalnym możemy uzyskać kilka ciekawych informacji i wykorzystać je w skryptach..

Zmienne specjalne (ang. special variables) to najbardziej prywatne zmienne powłoki, są udostępniane użytkownikowi tylko do odczytu

  • $0 – nazwa bieżącego skryptu lub powłoki
  • $1..$9 – Parametry przekazywane do skryptu ( to wyjątek od reguły, gdyż te zmienne mogą być modyfikowane przez użytkownika)
  • $# – Zawiera liczbę argumentów przekazanych w linii poleceń.
  • $_ – Ścieżka z jaką został wywołany skrypt (powłoka)
  • $@ – Pokaże wszystkie parametry przezywane do skryptu (też wyjątek), równoważne $1 $2 $3…, jeśli nie podane są żadne parametry $@ interpretowana jest jako nic.
  • $? – kod powrotu ostatnio wykonywanego polecenia (0 dla poprawnego wykonania , 1 lub inna wartość gdy polecenie nie zostanie zakończone sukcesem).
  • $$ – PID procesu bieżącej powłoki

Kilka przykładów:

1
2
3
cat plik.txt
echo $?
1

Jak widać polecenie zakończyło się nie powodzeniem ponieważ zmienna $? Zwróciła wartość 1 ( może być inna wartość większa o zero)

Sprawdźmy ponownie i wykonajmy poniższe polecenia:

1
2
3
4
5
touch plik.txt
cat plik.txt

echo $?
0

Jak widać teraz plik istnieje i polecenie cat zostało zakończone powodzenie. Świadczy o tym wartość zmienne specjalne $? Która wynosi teraz 0.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


Time limit is exhausted. Please reload CAPTCHA.