Systemy operacyjne
Rafał Polak 12k2 |
Laboratorium Komputerowe nr.5 |
TEMAT: Środowisko Linux - Programowanie w języku powłoki
Do nauczenia się programowania w języku powłoki bash niezbędna nam będzie podstawa i to będzie celem ćwiczenia. Wszystkie skrypty będziemy wykonywali w edytorze tekstowym VIM i zapisywali z większymi uprawnieniami. Skrypty przypominają poleceniami język C i jego pochodną internetową wersję php.
TWORZENIE PLIKU PROGRAMU
Po uruchomieniu edytora należy zapisać plik i nadać mu odpowiednie uprawnienia. Do jego uruchomienia niezbędne będą uprawnienia wykonywania ( uruchamiania ) pliku. Poleceniem chmod z uprawnieniem u+x. Pozwoli to na uruchamianie pliku przez właściciela.
ZMIENNE
Zmienne w powłoce nie potrzebują deklaracji typu zmiennej, co bardzo ułatwia pracę. Możliwe są zmienne wewnętrzne w pliku, jak i tworzenie zmiennych bezpośrednio z linii poleceń w powłoce. Dostęp do zmiennej możliwy jest poprzez wykorzystanie znaku dolara :
echo $zmienna
Parametry pozycyjne to zmienne zapisane w powłoce przechowujące parametry wywołania przekazywane przez program. Wykorzystamy je w poniższym przykładzie programu. Istnieją także zestawy zmiennych powłoki tj:
$# - ilość argumentów przekazanych z wiersza poleceń
$? - wartość zwrócona przez ostatni program
$0 - pierwszy wyraz wpisanego polecenia
$* - wszystkie argumenty wywołania
PROGRAM
Program wykorzystuje instrukcję warunkową case , if oraz pętle for i while. Jego działanie nie ma zbyt większego sensu. Wprowadzone zostają dwie zmienne zewnętrzne oznaczone $1 i $2. Są to zmienne pozycyjne powłoki.
Działanie programu polega na wybraniu poleceniem case, która część programu się wykonuje. Poprzez warunek if sprawdzane jest czy zmienna $2 jest większa lub równa 13. Wówczas wykonywana jest pętla wypisująca dla każdej wartości listy zmiennej „x” tekst z wartością tej zmiennej. Jeżeli ten warunek nie jest spełniony wykonywana jest jeden raz pętla while. Sprawdza w warunku czy $2 jest mniejsze lub równe 13 i zmienia wartość tej zmiennej. Słowa kluczowe break przerywają działanie pętli, a continue wymusza kolejne wykonanie.