test
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) [Архівовано 25 лютого 2008 у Wayback Machine.] — сторінка допомоги man в GNU (див. GNU Coreutils)
- test(1)[недоступне посилання з листопадаа 2019] — сторінка допомоги man в OpenBSD
- test(1) [Архівовано 13 грудня 2013 у Wayback Machine.] — сторінка допомоги man в Free BSD