systemy_operacyjne_cw_04_linux_bash.pdf

(287 KB) Pobierz
Microsoft Word - systemy_operacyjne_cw_04_linux_bash.docx
Ćwiczenie 4
Temat:
Skrypty powłoki
systemowej Bash.
Tworzenie programów w języku
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie studenta ze składnią języka powłoki
systemowej Bash, między innymi ze zmiennymi systemowymi, zmiennymi
specjalnymi, instrukcjami warunkowymi, pętlami. Student w tym ćwiczeniu
zapozna się z metodami tworzenia własnych programów w języku powłoki oraz
pozna możliwości zastosowania własnych skryptów.
powłoki.
306187755.004.png
Powłoka Bash – Wstęp
Powłoka Bash jest obecnie najpopularniejszym interpreterem poleceń w systemach
Linux. Powstał jako rozszerzenie powłoki „sh”, „ksh” oraz „csh”. Składnia języka pozwala na
tworzenie własnych programów skryptowych, które znacznie ułatwiają pracę
administratorom systemów oraz umożliwiają zautomatyzowane zarządzanie systemem.
W wielu dystrybucjach systemu Linux podstawowa instalacja ( z ang. „base” ) nie zawiera
powłoki bash , a jedynie powłokę sh (w takiej sytuacji powłoka bash może zostać oczywiście
doinstalowana). Natomiast większość instalacji typu domyślnego ( z ang. „default” ) zawiera
powłokę bash jako domyślny interpreter komend. W celu sprawdzenia, czy w systemie
zainstalowany jest interpreter bash oraz w której wersji, wydać należy polecenie:
/bin/bash version
Skrypty powłoki Bash
Skrypty to pliki tekstowe zawierające polecenia danego języka skryptowego interpretowane
przez zdefiniowany interpreter. Skrypty tym różnią się od innych programów
komputerowych, że nie muszą być kompilowane.
Skrypty pisane w języku powłoki bash powinny mieć rozszerzenie .sh oraz powinny
rozpoczynać się linią informującą, jaki interpreter powinien zostać użyty:
#!/bin/bash
Aby skrypt mógł zostać uruchomiony powinien mieć ustalone prawa dostępu do pliku
umożliwiające jego wykonanie:
chmod 700 moj_pierwszy_skrypt.sh
Skrypt może zawierać dowolne polecenie, które może zostać wydane w konsoli. Skrypty
umożliwiają dodatkowo stosowanie zmiennych, interakcję z użytkownikiem, stosowanie
instrukcji warunkowych, pętli, okien dialogowych itp.
Tworzenie programów w języku powłoki.
52
306187755.005.png
Zadanie 1 Pierwszy skrypt powłoki Bash
1. Stworzyć skrypt wg poniższych wytycznych:
1.1. W konsoli tty1 , za pomocą edytora Vim stworzyć plik: program_01.sh
1.2. Uzupełnić plik treścią:
#!/bin/bash
echo ”Witaj !”
sleep 5
echo e ”Minęło 5 sekund! \n Witaj \t\tponownie !!! ”
* polecenie sleep zatrzymuje wykonanie kodu na zadeklarowaną ilość sekund,
natomiast polecenie echo wywołane z flagą -e umożliwia interpretację znaków
reprezentujących (\n) nową linię czy (\t) tabulator.
1.3. Zapisać zmiany i zamknąć edytor Vim
1.4. Zmienić prawa dostępu do skryptu poleceniem:
chmod 700 program_01.sh
1.5. Wykonać skrypt, za pomocą polecenia:
./program_01.sh
Zmienne
W języku powłoki Bash zmienne można podzielić na zmienne:
programowe
specjalne
tablicowe
Tworzenie programów w języku powłoki.
53
306187755.006.png 306187755.007.png 306187755.001.png
Zmienne programowe
Zmienne programowe to zmienne tworzone i widoczne w ramach jednego programu.
Zmienne w języku Bash nie mają jawnie zdefiniowanego typu. Ich deklaracja odbywa się na
zasadzie wskazania nazwy zmiennej oraz przypisaniu jej wartości np.:
x=15
y=10
tekst=”Zmienna tekstowa”
W powyższym przykładzie zmienne x,y zostały zdefiniowane jako zmienne liczbowe,
natomiast zmienna tekst jako zmienna tekstowa.
Odwołania do tak zdefiniowanych zmiennych wykonuje się stosując symbol „$” przed nazwą
zmiennej np:
echo $$$$x
echo $$$$y
lub np. poprzez bardziej złożone konstruowanie ciągów tekstowych z wykorzystaniem
polecenia echo:
echo e "zmienna x wynosi \t$$$$x \nnatomiast y wynosi \t$$$$y"
Przypisywanie wartości do zmiennych programowych
Przypisanie wartości do zmiennej może odbywać się w najprostszym wypadku tak jak to
zostało zaprezentowane w powyższym przykładzie, poprzez bezpośrednie przypisanie :
y=10
Wartość zmiennej może także zostać pograna z konsoli, za pomocą polecenia read, którego
składnia jest następująca:
read nazwa_zmiennej
Polecenie to pozwala na pobranie z konsoli wartości i przypisanie jej do zmiennej np:
echo ”Podaj wartość zmiennej x:”
read x
echo ”Zmienna x wynosi: $x”
Zmienne programowe
54
read x
306187755.002.png
Za pomocą polecenia read możliwe jest także pobranie wartości kilku zmiennych:
echo ”Podaj dwie liczby oddzielone spacjami:”
read x y
echo ”Zmienna x wynosi: $x \nZmienna y wynosi: $y”
Kolejną metodą przypisywania wartości do zmiennych jest zagnieżdżanie poleceń, których
wyjście zostanie przypisane jako wartość zmiennych.
A=`polecenie1`
W powyższym przykładzie wynik działania polecenia1 zostanie przypisany do zmiennej A.
Należy zwrócić uwagę, iż polecenia zagnieżdżone muszą znajdować się pomiędzy ukośnymi
symbolami apostrofu (symbol ten na klawiaturze znajduje się najczęściej razem z symbolem
„tyldy” (~) . Np:
linie=`cat /etc/group | wc l`
echo ”Ilość linii w pliku Group wynosi: $linie”
Zadanie 2 Zmienne programowe
1. Utworzyć skrypt: program_02.sh który zapyta o nazwę użytkownika systemowego, a po
wprowadzeniu za pomocą konsoli nazwy użytkownika wyświetli jego ID, oraz ID jego
grupy na podstawie danych w pliku /etc/passwd
Przypisywanie wartości do zmiennych programowych
55
306187755.003.png
Zgłoś jeśli naruszono regulamin