Parametry pozycyjne to wartości przekazane do skryptu powłoki Linux podczas jego uruchamiania. W skrypcie Bash można się do nich odwoływać za pomocą specjalnych zmiennych, np. $1, $2, $3.
Przykład uruchomienia skryptu:
./skrypt.sh ala ma kota dziś
W skrypcie wartości będą dostępne jako:
$0- nazwa skryptu, np../skrypt.sh,$1- pierwszy argument, np.ala,$2- drugi argument, np.ma,$3- trzeci argument, np.kota,$4- czwarty argument, np.dziś.
Lista wszystkich argumentów
Do odwołania się do wszystkich argumentów służą głównie:
$@
$*
W pytaniach egzaminacyjnych za poprawną odpowiedź na „lista wszystkich wartości argumentów” najczęściej przyjmuje się $@.
Różnica między $@ i $*
Najważniejsza różnica ujawnia się po użyciu cudzysłowów:
"$@"
traktuje każdy argument osobno, zachowując ich granice, natomiast:
"$*"
łączy wszystkie argumenty w jeden ciąg tekstowy.
Dlatego w praktycznych skryptach bezpieczniej stosować "$@", szczególnie gdy argumenty mogą zawierać spacje.
Przykład
#!/bin/bash
echo "Liczba argumentów: $#"
for arg in "$@"; do
echo "Argument: $arg"
done
Jeśli uruchomimy:
./skrypt.sh "Jan Kowalski" test 123
pętla poprawnie potraktuje Jan Kowalski jako jeden argument.