Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по дисциплине ЛииСРВ.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
271 Кб
Скачать
☆

Структурные операторы shell Оператор цикла for

Синтаксис:

for <переменная> in <список значений>

do <список команд>

done

Пример

Пусть имеется командный файл makelist:

cat makelist

sort +1 people | pr –h Distribution | lpr //Сортировка по второму полю, печать заголовка, распечатка файла

Если вместо одного файла people имеется несколько adminpeople, hardpeople, softpeople, то необходимо повторить выполнение процедуры с различными файлами с помощью оператора for

Пример 1

for file in adminpeople, hardpeople, softpeople

do

sort +1 $file | pr –h Distribution | lpr

done

Пример 2

for file in *people

do

sort $file

done

Условный оператор if

Синтаксис:

if <если эта команда выполняется успешно, то>

then <выполнить все последующие команды до else или, если его нет, до fi>

[else <иначе выполнить следующие команды до fi>]

fi

Пример:

if test $# -eg 0

then echo “You must give a filename”

exit 1

else sort +1 $1| …| lpr

fi

// Если значение переменной # равно нулю, выводится сообщение «You must give a filename”, выполнение программы прекращается. Иначе выполняется команда сортировки данных.

Команда test

Эта команда применяется внутри shell-процедур.

Имеется три типа проверок: оценка числовых значений; оценка типа файла; оценка строк.

Для чисел синтаксис следующий:

N op M, где N, M –числовые переменные, операция op принимает следующие значения:

-eg

равно

-ne

не равно

-gt

больше

-lt

меньше

-ge

больше и равно

-le

меньше или равно

Для файла синтаксис такой:

op filename

операция op принимает следующие значения:

-s

файл существует и не пуст

-f

файл, а не каталог

-d

файл-директория

-w

файл для записи

-r

файл для чтения

Для строк синтаксис такой:

S op R

операция op принимает следующие значения:

=

эквивалентность

!=

неэквивалентность

-z

строка нулевой длины

-n

ненулевая длина строки

Несколько проверок могут быть объединены логическими операциями –a (and) и -o (or).

Пример:

if test –w $2 -a -r $1

then cat $1>> $2

else echo “can not append”

fi

Пример:

echo “Vvedite a”

read a

echo “Vvedite b”

read b

if test $a –lt $b

then

echo “Hello”

else

echo “…”

fi