Tworzenie skryptów BASH-a wraz z parametrami

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 23018 razy

Uruchamianie skryptu

Skrypty BASH-a mogą być zapisywane z rozszerzeniem .sh, które jednak nie jest konieczne. Sposób uruchomienia skryptu zależy bowiem od tego, jakie uprawnienia plikowi go zwierającemu nadano i czy w pierwszej linijce pliku umieszczono następującą linijkę:

#!/bin/bash

Linijka ta zawiera informację o położeniu programu interpretującego skrypt. Generalnie jednak każdy skrypt BASH-a może zostać uruchomiony w następujący sposób:

user@debian:/home/user# bash ./skrypt.sh

Jeżeli plikowi nadano uprawnienia do wykonywania:

user@debian:/home/user# chmod +x skrypt.sh

oraz w pierwszej linijce skryptu umieszczono wcześniej już wspomnianą linijkę kodu zawierającą lokalizację interpretera skryptu, to wystarczy w konsoli wpisać:

user@debian:/home/user# bash skrypt.sh

Uruchamianie skryptu z parametrami

Skrypt może zostać wywołany z parametrami, które można wypisać np. w następujący sposób:

#!/bin/bash for i in "$@"; do echo "$i"; done

W powyższym skrypcie zapis $@ odwołuje się do tablicy parametrów skryptu. Teraz można zapisać powyższy skrypt w pliku o nazwie skrypt_parametry.sh i uruchomić go w następujący sposób:

user@debian:/home/user# bash ./skrypt_parametry.sh parametr1 "parametr 2" parametr 3

Wynik działania skryptu:

parametr1
parametr 2
parametr
3

Do konkretnego parametru skryptu można się odwołać w sposób bezpośredni wpisując po znaku $ numer parametru, np.:

#!/bin/bash echo $1 $2

Wywołanie powyższego skryptu:

user@debian:/home/user# bash skrypt_parametry2.sh "parametr 1" "parametr 2"

wyświetli:

parametr 1 parametr 2

Możliwe jest również wyświetlenie liczby parametrów przekazanych do skryptu poprzez wpisanie $#:

#!/bin/bash echo "Liczba parametrów skryptu: $#" for i in "$@"; do echo "$i"; done

Po zapisaniu powyższego skryptu do pliku skrytp_parametry3.sh i wywołaniu go w następujący sposób:

user@debian:/home/user# bash ./skrypt_parametry3.sh "parametr 1" "parametr 2"

powinien zostać wyświetlony następujący wynik działania skryptu:

Liczba parametrów skryptu: 2
parametr 1
parametr 2