Bash
. Poza możliwościami uruchamiania różnych poleceń/programów, z czym mieliśmy dotychczas do czynienia, udostępnia ona także wiele elementów charakterystycznych dla języków programowania jak zmienne, kolekcje elementów czy pętle. Tutaj pokażę tylko kilka podstawowych elementów programowania w bash
-u.pierwszy_skrypt.sh
. Umieść w nim kilka linii:.sh
(które zresztą jest opcjonalne) nie sprawia, że plik jest uruchamialny, najpierw trzeba mu nadać odpowiednie prawa:./
, jeśli skrypt znajduje się w bieżącym katalogu. Jeśli nie, to podajemy do niego pełną ścieżkę (są jeszcze inne rozwiązania jak np. umieszczanie skryptu w katalogach, w których domyślnie powłoka szuka programów/skryptów).#
wskazuje na linię komentarza - czyli wszystko poza nim nie jest interpretowane przez powłokę. W tym przypadku, pierwszej linii skryptu, w połączeniu ze znakiem !
, wskazuje jakiej powłoki (języka) użyć do uruchomienia poleceń w skrypcie.
Skoro jednak już wspomniałem o komentarzach w skryptach to parę słów na ten temat. W komentarzach zwykle umieszczamy informacje na temat tego jaka jest ogólna funkcja skryptu, jak go używać, jak skrypt działa, czemu służą poszczególne polecenia itp. Przy pisaniu skryptów warto poświęcić trochę czasu aby go prawidłowo opisać w komentarzach. Po pierwsze sprzyja to dokumentacji pracy, po drugie jeśli po pewnym czasie wrócimy do skryptu, nie będziemy tracić czasu na przypominanie sobie ,,co autor miał na myśli''.zmienne.sh
z taką zawartością:$
przy ich nazwie (plik
, tekst
), natomiast kiedy się do nich odwołujemy, umieszczamy znak $
na początku ($plik
, $tekst
). Przy znaku =
nie można wstawiać spacji. Znak $
czasem znajduje się w innym miejscu, co można zobaczyć np. na kolejnym przykładzie w którym pokażę jak używać zmiennych przechowujących liczby do prostych obliczeń:[email protected]
.$1
..$2
) ale dla przejrzystości kodu lepiej ich wartość przypisać do zmiennych o nazwach, które odpowiadają ich funkcji. Na przykład jeśli parametr jest nazwą pliku, to zienna może nazywać się plik
albo plik_wejsciowy
.argumenty.sh
, nadaj mu uprawnienia wykonywalności.argumenty.txt
.$0
- nazwa własna skryptu$HOME
- ścieżka do katalogu domowego bieżącego użytkownika$USER
- nazwa bieżącego użytkownika[email protected]
przechowuje wiele wartości na raz. Jest to przykład zmiennej tablicowej.zmienne_tablicowe.sh
):0
a nie 1
. Wartość o indeksie 1
jest więc drugą a nie pierwszą. Znak @
lub *
oznacza wszystkie wartości.``
albo w parze nawiasów ze znakiem dolara $()
.polecenia.sh
)petla_argumenty.sh
dane.tsv
. Przedłużenie tsv
oznacza tab-separated values, więc dane oddziel tabulatorem a nie spacją.czytaj_z_pliku.sh
)fasta
z katalogu (odczyt_plikow.sh
)Bash
-u to jedynie czubek góry lodowej. Zachęcam do dalszego samodzielnego zgłębiania tej cennej umiejętności. W dalszej części kursu pokażę bardziej praktyczne przykłady jej wykorzystania.