Linux – skrypty powłoki Bash

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.