SKRYPTY
POWŁOKI - część II
1) Operacje arytmetyczne w powłoce
2) Wyrażenie read
3) Instrukcje sterujące w skryptach
1) Operacje arytmetyczne w powłoce
Do wykonywania operacji arytmetycznych służy wyrażenie expr .
Przykłady działań arytmetycznych :
dodawanie |
expr 1 + 3 |
odejmowanie |
expr 4 - 1 |
dzielenie
|
expr 8 / 2 |
reszta z dzielenia |
expr 20 % 3 |
mnożenie |
expr 1 \* 3 |
2) Wyrażenie read
Wyrażenie read używane jest do pobierania danych z klawiatury
i zapisywania ich w zmiennych.
Składnia wyrażenia read jest następująca:
read zmienna1,zmienna2,..zmiennaN
Przykładowy skrypt :
#!/bin/bash
echo "Podaj swoje imię:"
read imie
echo "Cześć $imie !"
3) Instrukcje sterujące w skryptach
Bash umożliwia wykorzystanie w skryptach instrukcji sterujących wykonywanym skryptem
takich jak :
- instrukcje warunkowe : if
- pętle : for , while , until
- wyrażenie : case
Instrukcja warunkowa if
if warunek
then
wykonuje wszystkie polecenia jeśli warunek jest równy zero (true)
elif warunek 2
then
wykonuje wszystkie polecenia jeśli warunek 2 jest równy zero (true)
else
wykonuje wszystkie polecenia jeśli żaren z powyższych warunków nie jest spełniony
fi
Warunek musi mieć następującą postać :
[ wyrażenie1 operator wyrażenie2 ]
Między nawiasami a treścią warunku muszą być postawione spacje.
Operatory wykorzystywane w warunkach :
-eq jest równe (= =)
-ne jest różne (!=)
-lt jest mniejsze (<)
-le jest mniejsze lub równe (<=)
-gt jest większe (>)
-ge jest większe lub równe (>=)
Przykładowy skrypt :
#!/bin/sh
if [ $1 -gt 0 ]
then
echo "liczba $1 jest dodatnia"
elif [ $1 -lt 0 ]
then
echo "liczba $1 jest ujemna"
elif [ $1 -eq 0 ]
then
echo "liczba $1 jest zerem"
else
echo "$1 nie jest liczba"
fi
Petla for
Podczas wykonywania pętli for , zmiennej zostaje przypisana
każda wartość z listy, wykonując jednocześnie instrukcje
zawarte miedzy operatorami : do done w kolejnych etapach przypisania.
for { nazwa zmiennej } in { lista }
do
instrukcje wykonywane są tyle razy ile jest elementów listy
done
Przykładowy skrypt :
#!/bin/bash
for i in 1 2 3
do
echo $i
done
Pętla while i pętla until
Pętla while wykonywana jest tak długo jak długo podany
warunek jest prawdziwy.
Pętla until wykonywana jest tak długo jak długo podany warunek
jest nie prawdziwy.
Obie pętle mają taką samą budowę.
while [ warunek ]
do
polecenie1
polecenie2
.......
done
Przykładowy skrypt :
#!/bin/bash
x=1;
while [ $x -le 10 ]; do
echo $x
x=$[x + 1] x= expr x + 1
done
Wyrażenie case
Wyrażenie case pozwala na dokonanie wyboru z pośród kilku
wzorców.
case zmienna in
"wzorzec1") polecenie1 ;;
"wzorzec2") polecenie2 ;;
"wzorzec3") polecenie3 ;;
*) polecenie_domylne
esac
Przykładowy skrypt :
#!/bin/bash
echo "Wybierz liczbę od 1-4 i zobacz co wygrałeś :"
read liczba
case "$liczbad" in
"1") echo "samochód" ;;
"2") echo "dom" ;;
"3") echo "10000 zł" ;;
"4") echo "przykro mi ale nic nie wygrywasz" ;;
*) echo "aby wziąć udział w losowaniu należy wybrać liczbę z przedziału
1-4"
esac
GRUPA MEDIA INFORMACYJNE & ADAM NAWARA
|