sobota,
Pierwszy skrypt bash
Skrypt powłoki to lista poleceń, które mają zostać wykonane przez system. W materiale omówiono najprostszy skrypt bash.
W Linuksie już po instalacji systemu dostępnych jest kilka interpreterów poleceń, które można zastosować w skryptach. Są to np. bash, sh, dash, python. Skrypt jest zwykłym plikiem tekstowym z ustawionym prawem wykonywalności. Można w nim wpisać polecenia dostępne w systemie, a także zapewnione przez interpreter instrukcje sterujące. Do efektywnego tworzenia i modyfikowania skryptów jest potrzebny edytor tekstu, w systemie Ubuntu takim programem może być domyślnie dostępny przyjazny początkującym użytkownikom edytor Nano. O podstawach pracy z Nano dowiesz się z materiału „Podstawy pracy w edytorze Nano”.
W przypadku skryptów w systemie Linux rozszerzenie pliku nie jest istotne, może go nawet nie być. Jest pomocne jedynie dla człowieka, bo pozwala zorientować się po nazwie pliku, jakie jest jego przeznaczenie. Dla skryptów bash powszechnie przyjęło się rozszerzenie .sh. Tworząc nowy skrypt, na początku należy utworzyć plik i otworzyć go do edycji. Można to zrealizować za pomocą komendy:
nano hello.sh
W pierwszym wierszu skryptu powinna znaleźć się sekwencja nazywana jako shebang (shebang line, bang path). Zawsze rozpoczyna się ona kratką i wykrzyknikiem, później wpisana jest ścieżka dostępu do interpretera. Jest to wskazanie interpretera, który powinien wykonać skrypt. Poza tym wierszem znak # (hasz) oznacza komentarz, wpisy znajdujące się po nim w wierszu są ignorowane przez interpreter.
Sekwencja shebang dla skryptu BASH:
#!/bin/bash
Prosty skrypt w stylu „Hello World”:
#!/bin/bash
echo "Hello CKZiU!"
Każdy skrypt powinien otrzymać prawa wykonywalności. Można to osiągnąć za pomocą polecenia:
chmod u+x hello.sh
Program chmod służy do zmieniania praw dostępu do pliku. Zastosowana w prezentowanym wywołaniu litera u (user) oznacza właściciela pliku, znak plus to dodanie prawa, litera x (execute) jest prawem do wykonania.
Skrypt można uruchomić, podając w wywołaniu pełną ścieżkę dostępu, np. /home/jan/skrypt.sh. Jest to mało wygodne, dlatego z poziomu katalogu bieżącego lepsza jest inna opcja uruchomienia:
./hello.sh
Kropka w wywołaniu oznacza katalog bieżący.
Do uruchamiania odpowiedniego interpretera w sekwencji shebang można użyć programu env.
#!/usr/bin/env bash
echo "Hello CKZiU!"
Poniżej zaprezentowano skrypt „Hello CKZiU” w wersjach dla kilku innych interpreterów.
#!/usr/bin/env python3
print("Hello CKZiU! "*10);
#!/bin/php
echo "Hello CKZiU!";
#!/bin/sh
echo "Hello CKZiU!"
#!/usr/bin/perl
print "Hello CKZiU!\n";