Zapewne wielu z Was spotkało się z tym określeniem. Skrypty bash są skryptami powłoki. Jest to faktycznie zebranie poleceń, które możemy również wpisać w terminalu. Dodatkowo polecenia te możemy opatrzyć w zmienne czy też w wyrażenia logiczne.
W tym artykule do tworzenia i edycji skryptów będę wykorzystywał edytor Vim. Całość uruchamiam na VPS’ach forpsi oczywiście z systemem operacyjnym Linux.
By utworzyć / edytować plik należy wydać następujące polecenie:
$ vim nazwa_skryptu.sh
Definiujemy w ten sposób powłokę, która będzie odpowiadać za wykonywanie skryptu. Wybór powłoki decyduje o tym z jakich poleceń można korzystać pisząc kod.
By system rozpoznał skrypt we właściwy sposób istotne jest by plik rozpoczynał się od:
#!/bin/bash
Po utworzeniu pliku należy nadać mu właściwe uprawnienia umożliwiające jego uruchomienie. W tym celu wydajmy polecenie:
$ chmod +x nazwa_skryptu.sh
Powyższy zapis spowoduje nadanie praw wykonywania wszystkim użytkownikom systemu.
W celu uruchomienia naszego skryptu wystarczy wpisać jego nazwę. Zakładając, że znajdujesz się w katalogu w którym jest zapisany, wywołasz go wpisując :
$ ./nazwa_skryptu.sh
Lepszym rozwiązaniem jest umieszczanie skryptów w katalogu bin. W takim przypadku możemy go uruchomić wpisując tylko i wyłącznie jego nazwę bez konieczności podawania ścieżki dostępowej. Pamiętaj, że zapisując skrypt w katalogu bin dla konkretnego użytkownika zawęzisz możliwość jego wykonania.
By zapoznać się ze składnią oraz możliwościami Bash najlepiej przeanalizować przykłady.
Pierwszy skrypt
do zapoznania się z bash na początek użyjemy dwóch prostych poleceń:
- echo
- read
Polecenie echo wypisze tekst w terminalu, read natomiast pobierze dane od użytkownika.
$ #!/bin/bash
$ echo 'Witaj świecie'
$ #wyświetlenie tekstu
powyższy skrypt spowoduje wyświetlenie tekstu zawartego pomiędzy znakami ‘. Znak # służy do wstawiania komentarzy, poza pierwszą linijką w której definiujemy powłokę. Polecam tworzyć komentarze w szczególności, gdy skrypt będzie bardziej złożony.
Pora na drugi skrypt:
$ #!/bin/bash
$ mojwiek=34
$ echo 'jaki jest Twój wiek?'
$ read twojwiek
$ echo "Twój wiek to $twojwiek a mój wiek to $mojwiek"
W powyższym przykładzie zdefiniowaliśmy zmienną mojwiek przyjmującą w tym przypadku wartość 34 oraz drugą zmienną twojwiek, którą użytkownik podaje w terminalu, dzięki zastosowaniu polecenia read. Pamiętaj, że definiując zmienną pomiędzy nazwą zmiennej a znakiem = oraz wartością, nie mogą znajdować się znaki specjalne czy też spacja.
Jeśli dokładnie przeanalizowałeś skrypt to na pewno zauważyłeś, że w poleceniu echo w jednym przypadku wypisujemy tekst znajdujący się w pojedynczych cudzysłowach (‘) a w kolejnej linii w podwójnych (“). Jaka jest różnica?
Pojedynczy cudzysłów wypisze wszystko co znajduje się pomiędzy nimi nie przypisując wartości do zmiennych, zamiast tych wartości wypisze pełen tekst, w tym przypadku byłby to $twojwiek oraz $mojwiek. Zatem jeśli chcesz wyświetlać tekst z przypisanymi zmiennymi musi się on znaleźć pomiędzy podwójnym cudzysłowem.
W kolejnym już ostatnim w tym artykule skrypcie rozszerzymy komendę echo o dodatkowy parametr:
$ #!/bin/bash
$ echo -e "Poniżej znajdziesz informację o procesorze \n"
$ lscpu #wyświetli informacje o procesorze
Instrukcja echo posiada parametr -e umożliwiający odczytywanie dodatkowych parametrów wewnątrz echa. W tym przypadku przejście do następnej linii \n
Jakie możemy jeszcze wpisywać dodatkowe parametry wewnątrz instrukcji echo?
- \” – wyświetlenie podwójnego cudzysłowu
- \t – tabulacja pozioma
- \\ – wyświetlenie znaku \
- \v – tabulacja pionowa
- \’ – wyświetlenie znaku ’
W tym artykule to wszystko, zapraszam do śledzenia naszego bloga.