Lab. 2: Programowanie w bashu.
Systemy operacyjne Laboratorium
1. Podstawy Bash.
Każdy skrypt powłoki powinien w pierwszej linijce zawierać ścieżkę do interpretera powłoki:
#!/bin/bash albo #!/bin/sh
Przykładowy skrypt:
#!/bin/sh
echo "Hello World"
#to mój komentarz
exit 0
Po zapisaniu pliku ze skryptem należy nadać mu prawa wykonywania poleceniem:
chmod +x skrypt.sh
Następnie można uruchomić skrypt wpisująć:
./skrypt.sh
2. Zmienne.
Zmienne nie wymagają deklaracji, deklaracja jest automatyczna.
!/bin/sh
NAPIS "Jakis napis"
LICZBA1=3466333;
LICZBA2=525332;
echo Drukujemy napis: $NAPIS oraz liczbę: $LICZBA1
LICZBA3=$[$LICZBA1+$LICZBA2+111]
echo Suma liczb: $LICZBA3
A=`expr 5 % 3`
echo "Reszta z dzielenia 5 przez 3 to: $A"
3. Zmienne środowiskowe.
Zmienne środowiskowe to nazwy obiektów zawierających informacje systemowe. Listę zmiennych
i przypisanych im wartości uzyskamy za pomocą polecenia set oraz env.
#!/bin/sh
echo "Witaj: $USER zalogowales sie do: $HOSTNAME"
1
4. Argumenty przekazywane przez linię komend.
Gdy uruchamiamy skrypt możemy przekazać argumenty z linii komend.
Zmienne parametryczne:
$0 nazwa skryptu
$# - liczba przekazanych parametrów
$$ - numer identyfikacyjny procesy skryptu
$@ - lista parametrów
$1, $2 kolejne parametry
#!/bin/sh
echo $@
echo $1 $4
5. Pobieranie danych.
Wprowadzanie danych przez użytkownika podczas działania skryptu:
#!/bin/sh
echo Wpisz tekst:
read TEKST
echo Napisałes:
echo $TEKST
6. Pobierane danych z poleceń systemowych
Pod zmienne można przypisać dane w poleceń systemowych.
#!/bin/sh
KATALOG=`pwd`
echo Jestes w katalogu: $KATALOG
7. Instrukcje warunkowe.
if [ warunek ] then
#instrukcje gdy warunek jest prawdziwy
else
#instrukcje gdy warunek jest fałszywy
fi # koniec instrukcji warunkowej
Warunki:
równy -e
mniejszy -l
większy -g
różny -n
#!/bin/sh
DZIEN_ROKU=`date +%j`
if [ $DZIEN_ROKU -le 178 ] ; then
echo Pierwsza połowa roku;
else
echo Druga połowa roku;
fi
2
#!/bin/sh
X=12
Y=21
echo Czy $X \< $Y ?
BOOLEAN=`expr $X \< $Y`
if [ $BOOLEAN == 1 ]; then
echo "TAK";
else echo "NIE";
fi
8. Instrukcja wyboru.
W instrukcji CASE należy pamiętać o dwóch średnikach na końcu lini.
#!/bin/sh
case $1 in
jeden) echo "Wpisałeś jeden jako parametr" ;;
dwa) echo "Wpisałeś dwa jako parametr" ;;
*) echo Nieznany parametr. Wpisałeś $1;;
esac
uruchomienie: ./skrypt.sh jeden
9. Pętle.
Pętla FOR:
#!/bin/sh
echo Podałeś następujące parametry:
for PARAMETR in $* ; do
echo $PARAMETR ;
done
uruchomienie: ./skrypt.sh jeden dwa trzy cztery
Pętla WHILE DO DONE:
#!/bin/sh
LINE=0
echo Wpisz liczby. 0 = koniec.
while true ; do
read LICZBA
SUMA=$[$SUMA+$LICZBA]
if [ $LICZBA = "0" ] ; then
break
fi
done
echo Suma: $SUMA
3
10. Zadania.
1. Napisać skrypt, który w danym katalogu zamieni rozszerzenia plików.
2. Napisać skrypt kalkulator.
3. Napisać skrypt, który po uruchomieniu co zadana ilość sekund sprawdzi procesy i zapisze je
do pliku.
4. Napisać skrypt, który utworzy w wybranym katalogu pliki o nazwach: plik001, plik002.
5. Napisz skrypt, który przejrzy całą strukturę katalogów począwszy od wskazanego
argumentem i w każdym katalogu utworzy plik INDEX zawierający listę plików z tego
katalogu.
6. Napisz skrypt sprawdzający, kto ile czasy był zalogowany i kiedy ostatnio się logował.
7. Napisz skrypt służący do wyszukiwania plików o wskazanym w argumencie rozszerzeniu.
8. Napisz skrypt do tworzenia kopii zapasowej wybranego katalogu co podany czas, jeżeli
jakiś plik w tym katalogu zmienił zawartość.
9. Napisz skrypt zliczający jaki użytkownik ile miejsca zajmuje na dysku.
4
Wyszukiwarka
Podobne podstrony:
syst oper skrypty8 37 Skrypty w Visual Studio (2)MATLAB cw SkryptySkrypt Latexskrypt rozdz 2 4Biochemia zwierząt skrypt URT2 Skrypt do lab OU Rozdział 6 Wiercenie 3Skrypt 1SKRYPT ELEKTROTECHNIKA ZADANIA PRDZMIENNY3 FAZOWY 14skrypt część ogólna J Woźniak04 Rozmyte Syst Ekspertowematlab skryptywięcej podobnych podstron