Zanim skrypt bedzie skryptem BASHa

Pedros

Zanim skrypt będzie skryptem BASH'a

Skrypt to nic innego jak plik tekstowy z wpisanymi tam poleceniami. Aby dało się wykonywać ów skrypt, należy mu nadać atrybut wykonywalności. Najprościej poleceniem:
$ chmod +x skrypt

Teraz nasz skrypt można wykonywać, ale zanim cokolwiek nasz skrypt będzie robił to musi mieć jakąś zawartość. Nasz jest na razie pusty więc otwieramy plik w jakims edytorze tekstowym i piszemy polecenia. Niech na początek będzie to:

echo ?Standardowy tekst?

W taki oto sposób napisaliśmy pierwszy skrypt. Jednak nie jest to tak do końca skrypt powłoki (właściwie jak odpalimy to w konsoli to i tak BASH to wykona ale należy dodać coś jeszcze). Na samej górze trzeba zaznaczyć jedną, jaki interpreter ma być wykorzystany do wykonania naszego skryptu. Musi to być w pierwszej linii:

#!/bin/bash
echo ?Standardowy tekst?

Teraz mamy już pełnoprawny skrypt BASH'a. Można go wykonywać i będzie on nam wyświetlał tekst w cudzysłowach. W taki sposób poznałeś pierwsze polecenie jakim jest echo. Służy jak już pewnie się domyśliłeś do wyświetlania tekstu. Wspomniane polecenie jest zwykłym programem, który siedzi sobie najprawdopodobniej, bo zależeć to może od używanej dystrubucji, w /usr/bin albo /bin. Jeśli w konsoli napiszemy echo ?Standardowy tekst?, to uzyskamy identyczny wynik jak wywołując nasz skrypt. I na tym polega całe programowanie w BASH'u. Wywołujemy dostępne programy i one wykonują jakieś zadania, a my przechwytujemy wyniki i nimi zarządzamy. Na razie znasz jedno takie polecenie, co może być trochę mało na początek. Poniżej jest lista chyba najczęściej używanych (zwłaszcza na początku pisania skryptów) programów:

<font name="Courier New">grep</span> ? przydatne do wycinania z danego ciągu znków
<font name="Courier New">sort</span> ? sortuje podane dane
<font name="Courier New">ls</span> ? wyświetla pliki z danego katalogu
<font name="Courier New">cat</span> ? wyświetla zawartość danego pliku
<font name="Courier New">head</span> ? wyświetla od góry pliku dana ilość znaków/linii
<font name="Courier New">tail</span> ? tak samo jak head tylko ze wyświetla od końca pliku
<font name="Courier New">cut</span> ? może służyć do dzielenia łańcuchów wg danego znaku
<font name="Courier New">awk</span> ? to już osobny język programowania jednak też często wykorzystywany w skryptach
<font name="Courier New">sed</span> ? także bardzo potężne narzędzie, służy do operacjach na strumieniach danych

Znając te kilka programów można pisać juz naprawdę sporo robiące skrypty. Każdy z powyższych programów ma swoje przełączniki lub jak kto woli parametry, np.

#!/bin/bash
echo -n ?Jakis tekst?

Sprawi, że po wyświetleniu tekstu ?Jakis tekst? kursor zostanie umieszczony na końcu linii a nie przeniesiony do nowej linii jak to się dzieje standardowo.

Przełączniki danego programu można znaleźć w podręczniku systemowym. Wpisując w konsoli

$ man echo

dowiemy się jakie parametry są dostępne i sporo ciekawych informacji na temat danego polecenia.

2 komentarzy

Swoją drogą winno być basha :)

Dlaczego BASHa zamieniłeś na BASH'a?
Zasady języka polskiego mówią o dodawaniu apostrofu ' przy odmianach wyrazów pochodzenia obcego co następuje:

pwn napisał(a)

Zasady użycia apostrofu są omówione w ?Słowniku wyrazów kłopotliwych? PWN (hasło: apostrof). Podstawową funkcją tego znaku jest zaznaczanie, że poprzedzająca go litera e lub dwuznak es są nieme (nie wymawiane), np. Wilde ? Wilde'a lub Descartes ? Descartes'a. Imię Jack nie wymaga w odmianie apostrofu, napiszemy więc: ?Podałem dziś Jackowi śniadanie?
Tak samo więc jak wspomniany "Jack" tak samo będzie z "BASH", bo czytamy "BASZ", nie ma "BASZA", apostrof jest zbędny lub nawet błędny.