Введение в Unix

         

Команда test


Не является частью Shell, но применяется внутри Shell-процедур.

Имеется три типа проверок:

  • оценка числовых значений;
  • оценка типа файла;
  • оценка строк.

Для каждого типа свои примитивы (операции op).

Для чисел синтаксис такой:

N op M,

где N, M - числа или числовые переменные;

op принимает значения: -eq, -ne, gt, -lt, -ge, -le (с обычным смыслом, как, например, в ФОРТРАН).

Для файла синтаксис такой:

op filename,

где op принимает значения:

-s (файл существует и не пуст);

-f (файл, а не каталог);

-d (файл-директория (каталог);

-w (файл для записи);

-r (файл для чтения).



Для строк синтаксис такой:

S op R , где S, R - строки или строковые переменные или

op1 S

op принимает значения:

= (эквивалентность);

!= (не эквивалентность);

op1 принимает значения:

-z (строка нулевой длины);

-n (не нулевая длина строки).

Наконец, несколько проверок разных типов могут быть объединены логическими операциями

-a (AND) и -o (OR).

Примеры:

$ if test -w $2 -a -r S1 > then cat $1 >> $2 > else echo "cannot append" > fi $

В некоторых вариантах ОС UNIX вместо команды test используются квадратные скобки, т.е. if [...] вместо if test ... .



Содержание раздела