Jakie czynności musimy wykonać w celu utworzenia skryptu ? Skrypt tworzymy wpisując polecenia do pliku tekstowego. Robimy to przy pomocy dowolnego edytora. W naszym przypadku skorzystamy z edytora vi; aby utworzyć plik tekstowy, w linii poleceń wystukujemy:
$ vi skrypt1
Pojawia się ekran edytora tekstowego i w tym momencie jesteśmy gotowi do napisania skryptu
#!/bin/bash
echo Witaj
echo to jest moj pierwszy skrypyt
echo nacisnij klawisz Enter
read
W skrypcie występują dwa polecenia : echo i read
Wiersze zaczynające się od znaku hasz # są liniami komentarza, czyli w trakcie wykonywania skryptu będą pomijane przez interpretator. Pierwsza linia naszego skryptu, zaczyna się ciągiem dwóch znaków: #! , które maja szczególne znaczenie; wskazują na rodzaj powłoki systemu w jakiej ma być uruchamiany skrypt. Za znakami #! Występuje pełna ścieżka dostępu do żądanej powłoki (w naszym przypadku jest nią bash), jeżeli pierwsza linia naszego skryptu nie będzie zawierała wyrażenia #!/bin/bash lub wyrażenie to będzie zawierało błędy: np. znakami będą przedzielone spacjami (jedna spacja pomiędzy np. # !) to wtedy skrypt nie zostanie uruchomiony.
$ chmod a+x skrypt1
$ chmod 755 skrypt1
Skrypt jest plikiem tekstowym zawierającym polecenia. Skrypt możemy utworzyć przy pomocy każdego edytora dostępnego w systemie Linux (emacs,vi,vim). Ponieważ, w naszym przypadku, poznaliśmy tylko vi, więc użyjemy tego właśnie edytora do utworzenia kilku skryptów by zilustrować najprostsze zasady programowania w bashu. Zalogujmy się jako administrator systemu (root) i po ukazaniu się i na ekranie znaku zachęty (przypominam, że w przypadku administratora jest to #) stwórzmy plik o nazwie skrypt1:
$ vi skrypt1
Wyjaśnienie:
1. każdy skrypt musi zaczynać się od wypełnienia pierwszej linii przez #!/bin/bash, która definiuje ścieżkę dostępu do interpretatora, który wykona a raczej zinterpretuje polecenia zawarte w skrypcie.
W naszym przypadku jest nim /bin/bash
2. utworzony pliku o nazwie skrypt1 jest plikiem zwykłym, który nie może być egzekwowany. Wykonajmy polecenie:
# ls -l skrypt1
-rw-r--r-- 1 piotr ola 15 marca 2004 skrypt1
Jak widzimy prawa użytkownika do pliku są ograniczone do jego czytania i modyfikowania, członkowie grupy ola i pozostali użytkownicy systemu mogą go tylko czytać (czy wiesz dlaczego – jeśli nie – powtórz rozdział …). Utworzony plik skrypt1 musimy uczynić wykonalnym, innymi słowy chcemy mu nadać prawo wykonywania, ale prawo to przypiszemy tylko jego właścicielowi. W tym celu musisz wykonać następujące polecenie:
# chmod u+x skrypt1
Po wykonaniu tego polecenia powtórzmy raz jeszcze polecenie ls -l
$ ls -l skrypt1
-rwxr--r-- 1 piotr ola 15 marca 2004 skrypt1
→ x oznacza, że użytkownik piotr ma prawo egzekwować skrypt1
Czy widzisz różnice ? 1,2,3 znak wyświetlonej informacji pozostają bez zmiany, natomiast czwarty zmienia się z „-” na „x”. Oznacza to, że skrypt1 jest plikiem wykonywalnym przez jego właściciela. Reszta wyświetlonej informacji pozostaje bez zmian co oznacza, że członkowie grupy oraz inni użytkownicy nie mają prawa wykonywać tego skryptu.
Pytanie: w jaki inny sposób możesz przypisać prawa wykonywania pliku tylko przez jego właściciela ?
Po wykonaniu polecenia z punktu 2, nasz skrypt może być wyegzekwowany jako polecenie skrypt1.
# . skrypt1
Reasumując: utworzenie skryptu składa się z pięciu odrębnych czynności:
1. Otwarcie pliku przy pomocy edytora tekstowego
2. Weryfikacje, że pierwsza linia skryptu wygląda : #!/bin/bash
3. Nagranie skryptu i opuszczenie edytora tekstowego
4. Uczynienie skryptu wykonywalnym , czyli musimy mu nadać prawo wykonywania przy pomocy polecenia : chmod
5. Egzekucja skryptu przy pomocy wyrażenia ./skrypt1