To tylko jedna z 6 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Systemy operacyjne i sieci dr Piotr Zadora
Ćwiczenia 6
Instrukcja for
Klikakrotnie powtórzenie ciągu poleceń, za kazdym razem inna wartość zmiennej indeksujacej.
Składnia:
for zmienna_indeksująca in lista
do
ciąg_polecień
done
Przykład - skrypt cat_files
for nazwa in p1.txt p2.txt p3.txt
do
echo Zawartosc pliku $nazwa
cat $nazwa
done
Druga postać składni:
for zmienna_indeskująca
do
ciąg_poleceń
done
Brak parametru lista - zmienna indeksująca przyjmuje kolejnno wartości parametrów przekazywanych do skryptu
Inne rozwiązanie poprzedniego przykładu - skrypt cat_files
for nazwa
do
echo Zawartosc pliku $nazwa
cat $nazwa
done
Przykładowae wykonanie
./skrypt p1.txt p2.txt p3.txt
Instrukcja while
Wilokrotne wykonywanie ciągu poleceń, jeśli polecenie sprawdzające zwróci prawdę
Składnia
while polecenie_sprawdzające
do
ciąg_poleceń
done
------------------------------------
nazwa=cokolwiek
while [ "$nazwa" ]
do
echo Podaj nazwe pliku
read nazwa
if [ "$nazwa" ]
then
cat $nazwa
fi
done
Instrukcja until
Wielokrotne wykonywanie ciągu poleceń, jeśli polecenie sprawdzające zwróci fałsz
Składnia:
until polecenie_sprawdzające
do
ciąg_poleceń
done
Instrukcja break i continue
Break: do opuszczania instrukcji pętli; po break pierwszym wykonanym poleceniem będzie pierwsze polecenie po pętli
Continue: do pominięcia dalszych poleceń; rozpoczęcie następnego obrotu pętli
Przykład:
for nazwa
do
if [ $nazwa = "p1" ]
then
break
fi
cat $nazwa
done
Instrukcja case
Wybór polecenia w zależności od wartości wzorca
Składnia:
case testowany_napis in
(…)
…,odrzucając z niej ścieżke i przyrostek
Składnia:
basename nazwa [przyrostek]
gdzie
-nazwa-pełna nazwa pliku ze ścieżką
-przyrostek - rozszerzenie lub inny ciąg znaków na końcu pliku
basename /home/knoppix/plik.txt
zwróci nam ino plik.txt
basename /users/anna/spis12
wynik: spis12
Skrypt kopiuj_rozsz
#!/bin/sh
for nazwa in *.$1
do
cp $nazwa `basename $nazwa $1`$2
done
exit 0
Przykładowe…
... zobacz całą notatkę
Komentarze użytkowników (0)