Команда test

Команда test позволяет проверить заданные условия. Виды проверок, вы- полняемых командой test:

r проверка файлов на предмет выполнения заданных условий;

r сравнение файлов;

r проверка установки опций оболочки;

r сравнение строк;

r сравнение целых чисел.

Если тест выполнен успешно, команда test передает нулевой код возврата. Так, используя команду test -e, можно проверить существование файла (пример 10.20).

 

Пример 10.20. Проверка существования файла

 

$ test -e /etc/passwd

$ echo $? 0

$ test -e not_existent_file

$ echo $? 1


 

В первом случае команда test вернула нулевой код возврата, посколь- ку файл /etc/passwd существует. Во втором случае команда вернула код ошибки.

Команда test в сценариях обычно вызывается в другой форме, совершенно эквивалентной показанной ранее. В этой форме вместо строки test указыва- ют квадратные скобки и условие в них: [ условие ]. Задача из предыдущего примера может быть решена иным способом (пример 10.21).

 

Пример 10.21. Другая форма команды test

 

$ [ -e /etc/passwd ]

$ echo $? 0

 

Команда [ -e /etc/passwd ] эквивалентна команде test -e /etc/passwd.

Наиболее часто используемые опции команды test, связанные с проверкой файлов:

r -e — файл существует;

r -f — файл является обычным файлом (plain file);

r -d — файл является каталогом;

r -h или -L — файл является символической ссылкой;

r -r — файл доступен для чтения;

r -w — файл доступен для записи;

r -x — файл доступен для исполнения;

r -s — файл не пуст;

r -N — файл был модифицирован.

Формат вызова test, который используется при сравнении файлов:

r [ file1 -nt file2 ] — возвращает истину, если первый файл имеет бо- лее позднюю дату модификации;

r [ file1 -ot file2 ] — возвращает истину, если первый файл имеет бо- лее раннюю дату модификации;

r [ file1 -ef file2 ] — проверка жесткой связи (hard link).

Опция -o позволяет проверять установку опций оболочки (пример 10.22).


 

Пример 10.22. Проверка установленных опций оболочки

 

$ set -o noclobber

$ [ -o noclobber ]

$ echo $? 0

$ set +o noclobber

$ [ -o noclobber ]

$ echo $? 1

 

Для сравнения строк применяется следующий формат вызова команды test:

r [ str1 = str2 ] — проверка на совпадение строк;

r [ str1 != str2 ] — проверка на несовпадение строк;

r [ str1 < str2 ] — истина, если при сортировке строка str1 окажется раньше, чем str2 (по аналогии сравнение >);

r [ -z str ] — истина, если длина строки нулевая;

r [ -n str ] — истина, если длина строки ненулевая.

Сравнение целых чисел (пример 10.23) производится с помощью следующих опций команды test:

r -eq — равенство;

r -ne — неравенство;

r -lt — меньше;

r -le — меньше или равно;

r -gt — больше;

r -ge — больше или равно.

 

Пример 10.23. Сравнение чисел

 

$ [ 1 -lt 2 ]

$ echo $? 0

$ [ 1 -eq 2 ]

$ echo $? 1


 








Дата добавления: 2015-06-12; просмотров: 646;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.