test — UNIX-утиліта для перевірки типу файлу і порівняння значень. Повертає код повернення 0 (істина) або 1 (неправда) в залежності обчислення виразу-параметра. Вирази можуть бути як унарними, так і бінарними. Унарні вирази часто використовуються для перевірки статусу файлу. Також допустиме порівняння чисел і рядків.
Використання test [expr] test {--help,--version}
Зазвичай використовується в нескладних shell-скриптах для перевірок різного роду. Наступний приклад видалить звичайний файл text.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». -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 OP arg2 -eq, -ne, -lt, -le, -gt, або -ge — ці арифметичні бінарні операції повертають істину, якщо arg1 дорівнює, не дорівнює, менше ніж, менше ніж або дорівнює, більш ніж, або більше або дорівнює чим arg2, відповідно. arg1 і arg2 можуть бути цілими числами, або спеціальними виразами -l string, які обчислюють довжину string.
Посилання test(1) — сторінка допомоги man в GNU (див. GNU Coreutils) test(1) — сторінка допомоги man в OpenBSD test(1) — сторінка допомоги man в Free BSD