Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

os_bash

.pdf
Скачиваний:
6
Добавлен:
13.02.2015
Размер:
230.16 Кб
Скачать

echo "$year is a leap"

else

echo "%year is not a leap"

fi

3.4.2Оператор выбора

case hвыражениеi in [ hшаблонi) hкомандыi ... ] esac

ПРИМЕР

case $1 in

1)

echo "One"

;;

1?|3?)

echo " starts with 1 or 3"

;;

*6)

echo "Ends with 6"

;;

*[3-7])

echo "Ends with 3 to 7"

;;

*)

echo "Other"

;;

31

esac

3.4.3Оператор цикла по списку

for hимяi [ in hсписокi ]; do hкомандыi ... done

Если «in hсписокi » пропущено то подразумевается «in $@».

ПРИМЕР

for GUEST in "Mr. Brown" "Mr. Smith" "Mr. Jones"; do echo "Hello $GUEST"

done

ПРИМЕР

for NAME in *.sh; do

echo "$NAME"

done

3.4.4Оператор цикла с предусловием продолжения

while hкоманды проверкиi [ in hсписокi ]; do hкомандыi ... done

ПРИМЕР

NUM=y

32

while [ "$NUM" != n ]; do

echo -n "Continue? (y/n) "

read NUM

echo "Processing . . . "

done

ПРИМЕР

BACKUPDIR=$HOME/backup

WORKDIR=$HOME/work

DATE=‘date +%Y_%m_%d.tar‘

ARCHIVE=$BACKUPDIR/$DATE

mkdir -p $BACKUPDIR

find "$WORKDIR" -type f -mtime -5 2> /dev/null | \ while read -e FILE; do

echo " Adding $FILE"

tar -uf "$ARCHIVE" "$FILE"

done

Или:

for FILE in $(find "$WORKDIR" -type f -mtime -5 2> /dev/null); do

echo " Adding $FILE"

tar -uf "$ARCHIVE" "$FILE"

done

33

3.4.5Оператор цикла с предусловием прекращения

until hкоманды проверкиi [ in hсписокi ]; do hкомандыi ... done

3.4.6Операторы (встроенные команды) выхода из цикла и итерации

break

continue

34