test

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

testUNIX-утиліта для перевірки типу файлу і порівняння значень. Повертає код повернення 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.

Посилання[ред.ред. код]