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.
Посилання
|
|