test (Unix) - test (Unix)

редактировать
Команда -line utility
test
Другие названия[
Разработчик (и) Различные разработчики с открытым исходным кодом и коммерческие разработчики
Операционная система Unix, Unix-подобный, Plan 9, IBM i
Тип Команда
Лицензия coreutils : GPLv3 +

test - это утилита командной строки, найденная в Unix, Plan 9 и Unix-like операционные системы, вычисляющие условные выражения. test был преобразован во встроенную команду оболочки в 1981 году с UNIX System III и в то же время стал доступен под альтернативным именем [.

Содержание
  • 1 Обзор
  • 2 Синтаксис
    • 2.1 Аргументы
      • 2.1.1 Строковые аргументы
      • 2.1.2 Числовые аргументы
      • 2.1.3 Операторы
    • 2.2 Статус выхода
  • 3 Примеры
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки
Обзор

Команда testв Unix вычисляет параметр выражение. В самых последних реализациях оболочки это встроенная оболочка , хотя внешняя версия все еще существует. Во второй форме команды [](скобки) должны быть окружены пробелами (это потому, что [- это программа и POSIX совместимые оболочки требуется пробел между именем программы и ее аргументами). Необходимо явно проверить имена файлов в оболочке C. Подстановка имени файла (подстановка ) вызывает завершение работы сценария оболочки.

Не следует путать команду testс зарезервированным словом [[, которое было введено с ksh88. Последний является не командой, а частью синтаксиса ksh88 и не применяет подстановку имени файла к выражениям glob.

Версия test, включенная в GNU coreutils, была написана Кевином Браунсдорфом и Мэтью Брэдберном. Команда test также была перенесена в операционную систему IBM i.

Синтаксис
тестовое выражение

или

[выражение ]

Аргументы

Для создания этого параметра используются следующие аргументы:

-eFileName - FileName существует

Все остальные аргументы возвращают истину, если объект (файл или строка) существует, и указанное условие истинно.

-bFilename - возвращает истинное значение выхода, если указанное FileName существует и является специальным файлом блока -c FileName - FileName - это специальный файл с символами  -dFileName - FileName - каталог -fFileName - FileName - это обычный файл -g FileName - FileName's Set Group ID установлен бит -h FileName - FileName - символическая ссылка -kFileName - установлен бит закрепления FileName -L FileName - FileName - это символическая ссылка  -pFileName - FileName - это именованный канал (FIFO) -r FileName - имя файла доступно для чтения текущему процессу -s FileName - FileName имеет размер больше 0 -t FileDescriptor - FileDescriptor открыт и связан с терминалом  -uFileName - установлен FileName Set User ID бит
-wFileName - установлен флаг записи FileName. Однако имя файла не будет доступно для записи в файловой системе, доступной только для чтения, даже если тест показывает истину
-xFileName - установлен флаг execute в имени файла. Если указанный файл существует и является каталогом, то Истинное значениевыхода указывает, что текущий процесс имеет разрешение на изменение cdв каталоге.

Нестандартные Korn Shell расширения:

file1 -nt file2 - file1 новее, чем file2 file1 -ot file2 - файл1 старше, чем файл2 файл1 -ef файл2 - файл1 - другое имя для файла2 - (символическая ссылка или жесткая ссылка )

Строковые аргументы

В Perl эти разделы поменяны местами: eq- строковый оператор, ==- числовой оператор, и так далее для остальных.

-nString1 - длина переменной String1 отлична от нуля -z String1 - длина переменной String1 равна 0 (ноль) String1 = String2 - переменные String1 и String2 идентичны String1 ! = String2 - переменные String1 и String2 не идентичны String1 - истина, если переменная String1 не является пустой строкой

Числовые аргументы

Integer1 -eq Integer2 - Переменные типа Integer1 и Integer2 алгебраически равны -ne - не равны -gt - больше -ge - больше или равно -lt - меньше -le - меньше или равно

Операторы

аргументы testможно комбинировать со следующими операторами:

!- Оператор унарного отрицания -a - Оператор двоичного И -o - Оператор двоичного ИЛИ (оператор -aимеет более высокий приоритет, чем оператор -o) \ (Выражение \) - Скобки для группировки должны быть экранированы обратной косой чертой \

Операторы -aи -oвместе с круглыми скобками для группировки являются расширениями XSI и поэтому не переносятся. В переносимых сценариях оболочки тот же эффект может быть достигнут путем соединения нескольких вызовов testвместе с операторами и ||и скобками.

Статус выхода

Эта команда возвращает следующие значения выхода:

0- параметр Expression имеет значение true 1 - параметр Expression имеет значение false или отсутствует>1 - Произошла ошибка
Примеры

1. Чтобы проверить, является ли файл несуществующим или пустым, введите:

if test! -s "$ 1", тогда echo $ 1 не существует или пуст. fi

Если файл, указанный первым позиционным параметром процедуры оболочки, $ 1, не существует или имеет размер 0, тестовая команда отображает сообщение. Если $ 1 существует и имеет размер больше 0, тестовая команда ничего не отображает.

Примечание: между функцией -s и именем файла должен быть пробел.

Кавычки вокруг $ 1 гарантируют, что тест работает правильно, даже если значение $ 1 является пустой строкой. Если кавычки опущены и $ 1 представляет собой пустую строку, команда test отображает сообщение об ошибке:

test: ожидался аргумент.

2. Чтобы выполнить сложное сравнение, введите:

if ["$ #" -lt 2] || ! [-e "$ 1"] затем выйти из файла fi

Если для процедуры оболочки задано менее двух позиционных параметров или файл, указанный в $ 1, не существует, процедура оболочки завершается. Специальная переменная оболочки $ # представляет количество позиционных параметров, введенных в командной строке, запускающей эту процедуру оболочки.

См. Также
Ссылки
Дополнительная литература
Внешние ссылки
Wikibook Руководство по Unix имеет страницу на тема: Commands
Последняя правка сделана 2021-06-10 02:34:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте