wtorek,
Bash: Zmienne specjalne
W powłoce bash istnieją specjalne zmienne, które mają z góry zdefiniowane znaczenia i są używane do przechwytywania informacji o środowisku wykonania skryptu oraz o interakcjach z użytkownikiem.
Najważniejsze zmienne specjalne
Zmienna $0
Nazwa bieżącego skryptu. Jeśli skrypt jest uruchamiany, $0
będzie zawierać nazwę tego skryptu.
Zmienne $1, $2, $3, ..., ${10}, ${11}, ...
Argumenty pozycyjne. $1
odnosi się do pierwszego argumentu przekazanego do skryptu, $2
do drugiego i tak dalej.
Zmienna $#
Liczba argumentów pozycyjnych przekazanych do skryptu.
Zmienna $*
Wszystkie argumenty pozycyjne przekazane do skryptu, zwrócone jako pojedynczy ciąg.
Zmienna $@
Wszystkie argumenty pozycyjne, ale w przeciwieństwie do $*
, każdy argument jest traktowany jako oddzielny ciąg. Bardzo przydatne, gdy argumenty zawierają białe znaki.
Zmienna $?
Status wyjścia ostatniego wykonanego polecenia. Wartość 0 zazwyczaj oznacza, że polecenie zakończyło się sukcesem, a wartość inna niż 0 wskazuje na błąd.
Zmienna $$
ID procesu (PID) bieżącego skryptu.
Zmienna $!
PID ostatnio uruchomionego procesu w tle.
Zmienna $-
Aktualne opcje ustawione dla skryptu.
Zmienna $_
Ostatni argument ostatniego polecenia.
Przykłady
Wyświetlanie nazwy skryptu
echo "Nazwa tego skryptu to $0"
Liczba argumentów
echo "Liczba przekazanych argumentów: $#"
Iteracja przez argumenty
for arg in "$@"
do
echo "Argument: $arg"
done
Sprawdzenie wyniku ostatniego polecenia
ls /nieistniejacy_katalog
if [ $? -ne 0 ]; then
echo "Wystąpił błąd!"
fi
Wyświetlanie PID skryptu
echo "PID tego skryptu to $$"