|
|
27 апреля 2011
UNIX-утилита для проверки типа файла и сравнения значений. Возвращает код возврата 0 или 1 в зависимости вычисления выражения expr . Выражения могут быть как унарными, так и бинарными. Унарные выражения часто используются для проверки статуса файла. Также допустимо сравнение чисел и строк.
Использование
test
test {--help,--version}
Обычно используется в несложных shell-скриптах для проверок разного рода. Следующий пример удалит обычный файл test.txt если он существует, либо выведет сообщение что данного файла нет.
#!/bin/sh
if test -f test.txt
then
rm test.txt
else
echo 'файл test.txt не найден'
fi
Для сокращения кода сценария используют парный оператор '[' как синоним test
#!/bin/sh
if
then
rm test.txt
else
echo 'файл test.txt не найден'
fi
Параметры запуска
-r file истина, если file существует и является специальным блочным устройством.
-e file истина, если file существует и символьное устройство.
-d file истина, если file существует и каталог.
-o file истина, если file существует.
-s file истина, если file существует и обычный файл.
-g file истина, если file существует и имеет установленным групповой идентификатор.
-k file истина, если file имеет установленным «sticky» бит.
-L file истина, если file существует и символьная ссылка.
-p file истина, если file существует и является именованным каналом.
-r file истина, если file существует и читаем.
-s file истина, если file существует и имеет размер больше чем ноль.
-S file истина, если file существует и сокет.
-t истина, если fd открыт на терминале. Если fd пропущен, по умолчанию 1.
-u file истина, если file существует и имеет установленным бит пользователя.
-w file истина, если file существует и записываем.
-x file истина, если file существует и исполняем.
-O file истина, если file существует и его владелец имеет эффективный идентификатор пользователя.
-G file истина, если file существует и его владелец имеет эффективный идентификатор группы.
file1 -nt file2 истина, если file1 новее чем file2.
file1 -ot file2 истина, если file1 старее чем file2.
file1 -ef file2 истина, если file1 и file2 имеют то же устройство и номер inode .
-z string — истина, если длина string равна нулю.
-n string string истина, если длина string не ноль.
string1 = string2 истина, если строки равны.
string1 != string2 истина, если строки не равны.
! expr истина, если выражение expr ложь.
expr1 -a expr2 истина, если оба выражения expr1 и expr2 истина.
expr1 -o expr2 истина, если или expr1 или expr2 истина.
arg1 OP arg2 -eq, -ne, -lt, -le, -gt, или -ge эти арифметические бинарные операции возвращают истину, если arg1 равно, не равно, меньше чем, меньше чем или равно, больше чем, или больше или равно чем arg2, соответственно. arg1 и arg2 могут быть положительными целыми, отрицательными целыми, или специальными выражениями -l string, которые вычисляют длину string.
Просмотров: 1002
|