Команда test

Материал из ПИЭ.Wiki

Перейти к: навигация, поиск

Команда test проверяет на истинность определенные условия, может использоваться для сравнения строк, чисел, проверки прав доступа к файлу.

Команда test используется в условных конструкциях, для организации циклов.

Основные форматы команды test:

test условие

или

[ условие ]

Обратите внимание, что с обеих сторон от условия обязательно остаются пробелы.

Содержание

Проверка прав доступа к файлу

При проверке прав на доступ к файлу может применяться довольно много условий. Ниже приводится перечень наиболее распространенных условий.

-d Каталог
-f Обычный файл
-L Символическая связь
-r Файл для чтения
-s Файл имеет ненулевой размер, он не пуст
-w Файл для записи
-u Файл имеет установленный бит suid
-x Исполняемый файл

Примеры использования

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

$ [ -w scores.txt ]
$ echo $?
0

или

$ test -w scores.txt
$ echo $?
0

В обоих случаях отображается значение нуль, это означает, что для данного файла установлены права на запись.

Теперь проверим, является ли этот файл исполняемым:

$ [ -x scores.txt ]
$ echo $?
1

Результат 1 говорит о том, что файл scores.txt не является исполняемым.

В следующем примере проверяется существование каталога appsbin:

$ [ -d appsbin ]
$ echo $?
0

Ответ утвердительный, каталог appsbin присутствует.

Применение логических операторов

Иногда возникает необходимость в сравнении различных прав доступа. Чтобы реализовать подобную проверку интерпретатор shell предлагает три типа логических операторов:

-a Логическое AND, возвращает истину, если обе части оператора принимают истинное значение
-o Логическое OR, возвращает истину, если какая-либо из частей оператора может принимать истинное значение
 ! Логическое NOT, возвращает истину, если условие ложно

Проверка строк

Чтобы проверить строки, можно использовать один из пяти форматов:

test "строка"
test оператор_строки "строка"
test "строка" оператор_строки "строка"
[ оператор_строки строка ]
[ строка оператор_строки строка ]

В качестве выражения оператор_строки могут использоваться следующие операторы:

= Две строки равны
 != Две строки не равны
-z Эта строка нулевая
-n Эта строка не является нулевой

Проверка чисел

Просмотры
Инструменты

Besucherzahler russian mail order brides
счетчик посещений
Rambler's Top100
Лингафонные кабинеты  Интерактивные доски  Интерактивная приставка Mimio Teach