8250


Język Shell jest przykładem języka skryptowego. Skrypt jest plikiem tekstowym zawierającym polecenia wykonywalne oraz wyrażenia języka powłoki sh, zatem przy pisaniu możemy użyć dowolnego edytora tekstu. W celu bezpośredniego wykonywania skryptu, poprzez podanie jego nazwy, niezbędne jest nadanie mu atrybutu wykonywalności. Taki plik najczęściej jest uruchamiany przy pomocy powłoki logowania użytkownika. W tym celu pierwsza linijka każdego skryptu powinna zawierać taką linijkę:

#!/pełna_ścieżka/nazwa_interpretera opcje

W przypadku języka Shell linijka pierwsza linijka ma taką oto postać:

#!/bin/sh

Napisy są podstawowym typem zmiennych używanych w powłoce sh. Zmienne są definiowane przy użyciu operatora przypisania „=”.

nazwa_zmiennej=wartość_zmiennej

Wartość zmiennej stanowi napis. Nazwa zmiennej natomiast może zawierać duże jak i małe litery. Należy jednak pamiętać o tym że zmienne środowiskowe powłoki zapisuje się za pomocą dużych liter. Kolejną ważną informacją jest to, że między nazwą zmiennej, operatorem przypisania i wartością przypisywana, nie mogą występować odstępy. Aby zmienna była dostępna dla wszystkich programów uruchamianych z danego skryptu, to należy jej nazwę poprzedzić słowem kluczowym „export”.

export nazwa_zmiennej=wartość_zmiennej

Podczas definiowania i odwoływania się do zmiennych, często przydają się takie znaki jak „” lub ` ` które pozwalają na przypisywane napisów z tym, że znak apostrofu wyłącza mechanizm podstawiania nazw zmiennych. Znak dolara „$” służy do odwoływania się do wartości zmiennych. Natomiast polecenie powłoki „echo” używane jest do wypisywania tekstów.

$ echo "To jest shell:" "$SHELL"

To jest shell: /bin/bash

$ echo "To jest shell:" '$SHELL'

To jest shell: $SHELL

W celu bezpiecznego włączenia wartości zmiennych w napisy, należy nazwę zmiennej ująć w nawiasy klamrowe i poprzedzić ją znakiem dolara.

$ echo "To jest shell:${SHELL}-tu dlaszy ciąg"

To jest shell:/bin/bash-tu dlaszy ciąg

By umożliwić łączenie skryptów Shell z innymi poleceniami, korzysta się z mechanizmu wstawiania wyniku działania innych poleceń do wartości zmiennych.

$ DATE=`date` ; echo "Aktulna data: ${DATE}"

Aktulna data: Sun Nov 26 21:57:37 CET 2000

W tym przykładzie do zmiennej DATE przypisany jest wynik działania polecenia date.

Skrypt shell tak jak i inne programy uruchamiane z wykorzystaniem powłoki, ma dostęp do zmiennych środowiskowych.

$ echo "Katalog domowy to: ${HOME}"

Katalog domowy to: /home/gjn

Dodatkowo w każdym skrypcie definiuje się zmienne powiązane z parametrami wywołania tego skryptu. Zmienne te są postaci $N gdzie N jest liczbą przechowującą argumenty wywołania skryptu. Zmienna $0 przechowuje nazwę z jaką został wywołany skrypt, $# liczbę wszystkich argumentów, a $@ wszystkie argumenty.

#!/bin/sh

echo "Skrypt ${0} został wywołany z ${#} argumentami."

echo "Z czego 1. to: ${1}, a 3. to: ${3}"

Uruchomienie tego skryptu daje następujący wynik.

$ ./t1 alfa beta gamma

Skrypt ./t1 został wywołany z 3 argumentami.

Z czego 1. to: alfa, a 3. to: gamma

W języku shell są zawarte tylko dwie podstawowe konstrukcje sterujące , takie jak if oraz case

Budowa instrukcji warunkowej if :

if [ warunek ]

then

instrukcje

elif [ warunek ]

then

instrukcje

else

instrukcje

fi

Budowa instrukcja case:

Case $ZMIENNA In

WARTOŚĆ1)

Instrukcja

;;

WARTOŚĆ2)

Instrukcja

;;

WARTOŚĆN)

Instrukcja

;;

*)

Instrukcja

;;

esac

linia w której znajduje się „*)” symbolizuje wszystkie pozostałe wartości.

Przy konstruowaniu warunków najczęściej stosuje się instrukcję test(l) , a dzięki powłoce możemy uprościć wywołanie tej instrukcji korzystając tylko z odpowiedniego parametru.

Operator

Opis

Operacje na plikach

Prawdziwe jeżeli plik

-e plik

Istnieje

-d plik

Jest katalogiem

-f plik

Jest zwykłym plikiem

-L plik

Jest linkiem symbolicznym

-r plik

Można czytać

-w plik

Można zapisywać

-x plik

Można wykonywać

Plik1 -nt plik2

Jeżeli plik1 jest nowszy niż plik2

Plik1 -ot plik2

Jeżeli plik1 jest starszy niż plik2

Porównywanie napisów

Prawdziwe jeżeli

-z napis

Napis ma długość 0

-n napis

Napis ma długość niezerową

Napis1 = napis2

Napis1 jest identyczny z napisem2

Napis1 != napis2

Napis1 jest różny od napisu2

Operatory arytmetyczne

Prawdziwe jeżeli wartości są

Wart1 -eq wart2

Są sobie równe

Wart1 -ne wart2

Różne

Wart1 -lt wart2

  1. Mniejsza od 2

Wart1 -le wart2

  1. Mniejsza lub równa 2

Wart1 -gt wart2

  1. Większa od 2

Wart1 -ge wart2

  1. Większa lub równa 2



Wyszukiwarka

Podobne podstrony:
T 5 MSE Konkurencyjnoś ć gospodarki ś wiata
8250
8250
społeczna odpowiedzialność biznesu
8250
UKĹ AD NERWOWY oĹ› rodkowy, Religioznawstwo, I rok, Wstęp do psychologii
T 4 MSE gospodarka Ĺ› wiata
8250
projekt c d [tryb zgodno›ci]
8250
8250
T 5 MSE Konkurencyjnoś ć gospodarki ś wiata

więcej podobnych podstron