Test
test — UNIX-утилита для проверки типа файла и сравнения значений. Возвращает код возврата 0 (ложь) или 1 (истина) в зависимости вычисления выражения expr. Выражения могут быть как унарными, так и бинарными. Унарные выражения часто используются для проверки статуса файла. Также допустимо сравнение чисел и строк.
Начиная с UNIX System III утилита стала встроенной, также появилась вторая её форма - [.[1]
Использование
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. Парный оператор требует пробела между скобками потому, что [ (скобка) является командой оболочки, а POSIX совместимые оболочки требует пробела между командой и её аргументами.
#!/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 не ноль.string1 = string2— истина, если строки равны.string1 != string2— истина, если строки не равны.! expr— истина, если выражение expr ложь.expr1 -a expr2— истина, если оба выражения expr1 и expr2 истина.expr1 -o expr2— истина, если хотя бы одно из выражений expr1 или expr2 истина.arg1 %оператор% arg2 -eq, -ne, -lt, -le, -gt, или -ge— эти арифметические бинарные операции возвращают истину, если arg1 равно (-eq), не равно (-ne), меньше чем (-lt), меньше чем или равно (-le), больше чем (-gt), или больше или равно (-ge), чем arg2, соответственно. arg1 и arg2 могут быть положительными целыми, отрицательными целыми, или специальными выражениями -l string, которые вычисляют длину string.
Примечания
- ↑ traditional Bourne shell family / history and development. www.in-ulm.de. Дата обращения: 15 июля 2017. Архивировано 14 апреля 2020 года.
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.