Parametr $? w Bash
$? to specjalny parametr powłoki Bash, który przechowuje kod zakończenia ostatnio wykonanego polecenia. Jest często używany w skryptach Linux do sprawdzania, czy poprzednia komenda wykonała się poprawnie.
Co oznacza kod zakończenia?
W systemach Linux program po zakończeniu zwraca liczbę, nazywaną kodem wyjścia:
0— polecenie zakończyło się poprawnie,- wartość różna od
0— wystąpił błąd lub nietypowa sytuacja.
Przykład
echo "Test"
echo $?
Pierwsze polecenie echo zwykle wykona się poprawnie, więc drugie polecenie wyświetli:
0
W pytaniu egzaminacyjnym występuje:
echo -n "To jest pewien parametr "
echo $?
Opcja -n powoduje, że echo nie przechodzi do nowej linii. Następnie echo $? wypisuje kod zakończenia poprzedniego polecenia, czyli echo -n. Najczęściej będzie to 0.
Wynik może wyglądać tak:
To jest pewien parametr 0
Ważne parametry specjalne w Bash
$?— kod zakończenia ostatniego polecenia,$$— numer PID bieżącej powłoki,$!— PID ostatniego procesu uruchomionego w tle,$#— liczba parametrów przekazanych do skryptu,$*lub$@— wszystkie parametry przekazane do skryptu.
Na egzaminie należy pamiętać: $? nie oznacza parametrów skryptu, tylko status ostatniej komendy.