VBMagazine

 Komputery    
Poprzedni artykuł Następny artykuł

Linux - kurs bash'a (cz.4)

golish

      Witam w kolejnym odcinku naszego kursu. Dzisiaj z różnych przyczyn będzie trochę krócej niż ostatnio. Więc przejdźmy do rzeczy.

      Poprzednio poznaliśmy instrukcję warunkową if. Dziś chciałbym przedstawić instrukcję case, która jest w pewnym sensie jej rozszerzeniem. Jej składnia jest następująca:

    case zmienna in
wyrazenie1) instrukcje ;;
wyrazenie2) instrukcje ;;
...
wyrazenien) instrukcje ;;
*) instrukcje
esac

Instrukcja case sprawdza porównuje zmienną z kolejnymi wyrażeniami. Jeśli się okaże, że są one równe to wykonywane są odpowiednie instrukcje. Jeśli zmienna nie będzie równa żadnemu z podanych wyrażeń zostaną wykonane instrukcje po *). Przykład użycia case:

    #!/bin/bash
case $1 in
0) echo "zero" ;;
1) echo "jeden" ;;
2) echo "dwa" ;;
3) echo "trzy" ;;
4) echo "cztery" ;;
5) echo "piec" ;;
6) echo "szesc" ;;
7) echo "siedem" ;;
8) echo "osiem" ;;
9) echo "dziewiec" ;;
*) echo "to nie jest cyfra"
esac

Powyższy skrypt wypisuje podaną jako pierwszy parametr cyfrę słownie lub stwierdza, że nie jest to cyfra. Prawda, że wygląda to dużo prościej niż pisanie wielu instrukcji if?


Pętle

      Pętle służą do powtarzania określonej czynności wiele razy. Pierwszą pętlą jaką chciałbym przedstawić jest pętla for. Składnia pętli for wygląda następująco:

    for zmienna in lista; do
instrukcje;
done

W kolejnych krokach zmienna przyjmuje kolejne wartości z podanej listy. Za każdym razem wykonywane są podane instrukcje. Przykładem może być program dodający do nazw wszystkich plików przyrostek ".old":

    #!/bin/bash
for i in `ls`; do
mv $i $i.old
done

Zauważcie jak jest uzyskiwana lista plików w aktualnym katalogu - użyte do tego zostało polecenie "ls". Bardzo ważne są również zastosowane cudzysłowy. Program będzie działał jedynie z `, ponieważ jest to znak dla bash'a, aby przetworzył znajdujący się między nimi kod. Inne cudzysłowy (' lub ") spowodowałyby, że ls zostałoby potraktowane jako napis.

      To już koniec na dziś. Do zobaczenia w następnej części!


golish
e-mail: golish@noname.bjn.pl

Poprzedni artykuł Następny artykuł



Klasyka

 


Copyright 1999-2001 Magazyn internetowy NoName
Wszelkie prawa zastrzeżone