Команда test может использоваться для проверки существования файлов и каталогов и установленных для них полномочий. Для этого используется следующий синтаксис:
test –rwfds имя_файла
–r – файл имеет разрешение на чтение файла;
–w – файл имеет разрешение на запись в файл;
–x – файл можно выполнять;
–f – файл является обычным файлом;
–d – файл является каталогом;
–с – файл является специальным файлом;
–s – размер файла отличен от нуля, т.е. он не пустой.
В каждом случае команда возвращает нулевое значение, если проверка дает положительный (истинный) результат, и ненулевое значение, если – отрицательный (ложный).
Эта команда дает широкий спектр возможностей проверки файлов, которые следует выполнять в сценарии перед потенциально недопустимыми операциями.
Например, имеется сценарий копирования файлов. Пользователь указывает два файловых аргумента: источник и приемник.
В сценарии к этим аргументам можно обращаться как $1 и $2. В позиционном параметре $# хранится количество аргументов. Тогда с помощью команды test можно протестировать следующее:
- проверка test «$1» = «$2» позволяет предотвратить случайное копирование;
- проверка test –f «$1» позволяет проверить, является ли исходный файл (источник) файлом (т.е. не каталогом);
- проверка test –d «$2» позволяет увидеть, является ли приемник каталогом.
Например, вводя с клавиатуры командные строки в первом случае получим подтверждение (код завершения "0"), а во втором – опровержение (код завершения "1"). "specific" – имя существующего файла.
[ –f specific ] ; echo $?
[ –d specific ] ; echo $?