Лучшие вопросы
Таймлайн
Чат
Перспективы
Test
UNIX-утилита Из Википедии, свободной энциклопедии
Remove ads
test — UNIX-утилита для проверки типа файла и сравнения значений. Возвращает код возврата 0 (ложь) или 1 (истина) в зависимости вычисления выражения expr. Выражения могут быть как унарными, так и бинарными. Унарные выражения часто используются для проверки статуса файла. Также допустимо сравнение чисел и строк.
Начиная с UNIX System III утилита стала встроенной, также появилась вторая её форма - [.[1]
Remove ads
Использование
- test [expr]
- test {--help,--version}
Обычно используется в несложных shell-скриптах для проверок разного рода. Следующий пример удалит обычный файл test.txt, если он существует, либо выведет сообщение, что данного файла нет.
#!/bin/sh
if test -f test.txt
then
  rm test.txt
else
  echo 'файл test.txt не найден'
fi
Для сокращения кода сценария используют парный оператор '[' как синоним test. Парный оператор требует пробела между скобками потому, что [ (скобка) является командой оболочки, а POSIX совместимые оболочки требует пробела между командой и её аргументами.
#!/bin/sh
if [ -f test.txt ]
then
  rm test.txt
else
  echo 'файл test.txt не найден'
fi
Remove ads
Параметры запуска
- -b file— истина, если file существует и является специальным блочным устройством.
- -c file— истина, если file существует и символьное устройство.
- -d file— истина, если file существует и является каталогом.
- -e file— истина, если file существует.
- -f file— истина, если file существует и является обычным файлом.
- -g file— истина, если file существует и имеет установленным групповой идентификатор (set-group-id).
- -k file— истина, если file имеет установленным «sticky» бит.
- -L file— истина, если file существует и является символьной ссылкой.
- -p file— истина, если file существует и является именованным каналом (pipe).
- -r file— истина, если file существует и читаем.
- -s file— истина, если file существует и имеет размер больше, чем ноль.
- -S file— истина, если file существует и является сокетом.
- -t [fd]— истина, если fd открыт на терминале. Если fd пропущен, по умолчанию 1 (стандартное устройство вывода).
- -u file— истина, если file существует и имеет установленным бит пользователя (set-user-id).
- -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 не ноль.
- string1 = string2— истина, если строки равны.
- string1 != string2— истина, если строки не равны.
- ! expr— истина, если выражение expr ложь.
- expr1 -a expr2— истина, если оба выражения expr1 и expr2 истина.
- expr1 -o expr2— истина, если хотя бы одно из выражений expr1 или expr2 истина.
- arg1 %оператор% arg2 -eq, -ne, -lt, -le, -gt, или -ge— эти арифметические бинарные операции возвращают истину, если arg1 равно (-eq), не равно (-ne), меньше чем (-lt), меньше чем или равно (-le), больше чем (-gt), или больше или равно (-ge), чем arg2, соответственно. arg1 и arg2 могут быть положительными целыми, отрицательными целыми, или специальными выражениями -l string, которые вычисляют длину string.
Remove ads
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads