test

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

test — UNIX-утилита для проверки типа файла и сравнения значений. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости вычисления выражения expr. Выражения могут быть как унарными, так и бинарными. Унарные выражения часто используются для проверки статуса файла. Также допустимо сравнение чисел и строк.

Использование[править | править вики-текст]

  • 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

#!/bin/sh
if [ -f test.txt ]
then
  rm test.txt
else
  echo 'файл test.txt не найден'
fi

Параметры запуска[править | править вики-текст]

  • -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» бит.
  • -n string — истина, если длина string не равна нулю
  • -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 — истина, если длина 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 равно, не равно, меньше чем, меньше чем или равно, больше чем, или больше или равно чем arg2, соответственно. arg1 и arg2 могут быть положительными целыми, отрицательными целыми, или специальными выражениями -l string, которые вычисляют длину string.

Ссылки[править | править вики-текст]

  • test(1) — страница справки man по пользовательским командам GNU/Linux  (англ.) (см. GNU Coreutils)
  • test(1) — страница справки man по пользовательским командам OpenBSD  (англ.)
  • test(1) — страница справки man по пользовательским командам FreeBSD  (англ.)