Категории
Самые читаемые
Лучшие книги » Компьютеры и Интернет » Интернет » Операционная система UNIX - Робачевский Андрей Михайлович

Операционная система UNIX - Робачевский Андрей Михайлович

Читать онлайн Операционная система UNIX - Робачевский Андрей Михайлович

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 19 20 21 22 23 24 25 26 27 ... 156
Перейти на страницу:

fi

Команды <i>command1</i>, <i>command2</i> и т.д. будут выполнены, если истинно <i>условие</i>. Условие может генерироваться одной или несколькими командами. По существу, ложность или истинность условия определяется кодом возврата последней выполненной команды. Например:

if grep sergey /etc/passwd &gt;/dev/null 2&gt;&amp;1

then

 echo пользователь sergey найден в файле паролей

fi

Если слово sergey будет найдено программой grep(1) в файле паролей (код возврата grep(1) равен 0), то будет выведено соответствующее сообщение.

Возможны более сложные формы оператора if.

set `who -r`

Установим позиционные параметры равными значениям полей вывода программы who(1)

if [ &quot;$9&quot; = &quot;S&quot; ]

Девятое поле вывода — предыдущий уровень выполнения системы; символ 'S' означает однопользовательский режим

then

 echo Система загружается

elif [ &quot;$7&quot; = &quot;2&quot; ]

Седьмое поле — текущий уровень

 echo Переход на уровень выполнения 2

else

 echo Переход на уровень выполнения 3

fi

Данный фрагмент скрипта проверяет уровень выполнения, с которого система совершила переход, и текущий уровень выполнения системы. Соответствующие сообщения выводятся на консоль администратора. В этом фрагменте условие генерируется командой test, эквивалентной (и более наглядной) формой которой является "[]". Команда test является наиболее распространенным способом генерации условия для оператора if.

Команда test

Команда test имеет следующий синтаксис:

test <i>выражение</i>

или

[ <i>выражение</i> ]

Команда вычисляет логическое выражение (табл. 1.10) и возвращает 0, если выражение истинно, и 1 в противном случае.

Таблица 1.10. Выражения, используемые в команде test

Выражения с файлами -s <i>file</i> Размер файла <i>file</i> больше 0 -r <i>file</i> Для файла <i>file</i> разрешен доступ на чтение -w <i>file</i> Для файла <i>file</i> разрешен доступ на запись -x <i>file</i> Для файла <i>file</i> разрешено выполнение -f <i>file</i> Файл <i>file</i> существует и является обычным файлом -d <i>file</i> Файл <i>file</i> является каталогом -с <i>file</i> Файл <i>file</i> является специальным файлом символьного устройства -b <i>file</i> Файл <i>file</i> является специальным файлом блочного устройства -р <i>file</i> Файл <i>file</i> является поименованным каналом -u <i>file</i> Файл <i>file</i> имеет установленный флаг SUID -g <i>file</i> Файл <i>file</i> имеет установленный флаг SGID -k <i>file</i> Файл <i>file</i> имеет установленный флаг sticky bit Выражения со строками -z <i>string</i> Строка <i>string</i> имеет нулевую длину -n <i>string</i> Длина строки <i>string</i> больше 0 <i>string1</i> = <i>string2</i> Две строки идентичны <i>string1</i> != <i>string2</i> Две строки различны Сравнение целых чисел <i>i1</i> -eq <i>i2</i> <i>i1</i> равно <i>i2</i> <i>i1</i> -ne <i>i2</i> <i>i1</i> не равно <i>i2</i> <i>i1</i> -lt <i>i2</i> <i>i1</i> строго меньше <i>i2</i> <i>i1</i> -le <i>i2</i> <i>i1</i> меньше или равно <i>i2</i> <i>i1</i> -gt <i>i2</i> <i>i1</i> строго больше <i>i2</i> <i>i1</i> -ge <i>i2</i> <i>i1</i> больше или равно <i>i2</i>
1 ... 19 20 21 22 23 24 25 26 27 ... 156
Перейти на страницу:
На этой странице вы можете бесплатно скачать Операционная система UNIX - Робачевский Андрей Михайлович торрент бесплатно.
Комментарии