Читайте также:
|
|
Интерпретатор присваивает (автоматически) значения некоторым параметрам, обозначаемым одним из следующих символов:
# - количество позиционных параметров;
* - значения позиционных параметров в виде строки "$1 $2 $3 …";
@ - значения позиционных параметров;
$ - идентификатор текущего процесса (Shell-процесса);
? - десятичное значение, возвращаемое последней выполненной командой;
- - флаги, указанные при запуске Shell
! - идентификатор последнего запущенного процесса.
Команда test
Встроенная команда test интерпретатора команд sh используется в следующих случаях:
· для сравнения строк и чисел;
· для проверки состояния файла;
· в операторе if.
Формат команды:
test < выражение >
Команда test вычисляет <выражение> и, если значение выражения - ИСТИНА, то возвращает код завершения 0 (True); иначе – ненулевое значение (false).
Cравнение строк
Формат команды test для сравнения строк:
test строка1 = строка2 # проверка на равенство
test строка1!= строка2 # проверка на неравенство
Пример_1: проверка на пустой аргумент команды
% test "$1"=""
Cравнение чисел
Формат команды test для сравнения чисел:
test число1 < оператор > число2
Операторы указываются в соответствии со следующей таблицей:
Наименование оператора | Математический вид оператора | Оператор в команде test |
равно | ═ | -eq |
не равно | ≠ | -ne |
меньше | < | -lt |
меньше или равно | ≤ | -le |
больше | > | -gt |
больше или равно | ≥ | -ge |
Пример_1: проверка кода возврата последней выполненной команды
на 0.
test "$?" -eq 0
Пример_2: проверка текущей даты на 20 число
test "`date +%d`" -eq 20
Здесь date +%d – команда получения текущей даты, в которой форматная строка (+%d) ограничивает вывод команды только числом.
Проверка состояния файла
В случае использования команды test для проверки состояния файла < выражение > может состоять из следующих примитивов:
-r файл - истина, если файл существует и доступен для чтения;
-w файл - истина, если файл существует и доступен для записи;
-x файл - истина, если файл существует и доступен для выполнения;
-f файл - истина, если файл существует и является обычным файлом;
-d файл - истина, если файл существует и является каталогом;
-c файл - истина, если файл существует и является специальным символьно-ориентированным файлом;
-b файл - истина, если файл существует и является специальным блок-ориентированным файлом.
Управляющие конструкции высокого уровня
Дата добавления: 2014-12-19; просмотров: 48 | Поможем написать вашу работу | Нарушение авторских прав |