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» бит.-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/Linux (англ.) (см. GNU Coreutils)test(1)в страница справки man по пользовательским командам OpenBSD (англ.)test(1)в страница справки man по пользовательским командам FreeBSD (англ.)
| Стандартные программы UNIX (все программы) | |
|---|---|
| Файловые системы | chroot dd df fdisk fsck mkisofs mkswap mount umount rehash |
| Файлы и каталоги | cat chattr cd chmod chown chgrp cksum cmp cp diff du file fuser ln ls lsof mkdir mv od pwd rm rmdir split touch |
| Процессы | at cron exit kill killall nice nohup pgrep pidof pkill ps renice sleep time top wait watch |
| Пользователи | env finger id last logname mesg passwd su sudo uptime w wall who whoami write |
| Сеть | ftp host ifconfig netcat netstat nmap nslookup ping rlogin SSH traceroute wget |
| Тексты | AWK comm cut ed ex expand unexpand fmt head iconv join less more paste pr sed sort tac tail tr uniq wc xargs |
| Командная строка | alias basename bash bind dirname echo expr false printf test true unset |
| Поиск | find grep strings whereis which |
| Разное | banner bc cal date help lp man history size tee uname yes reboot |