Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Лабы1 / lab_m1_vt_vt_os_230100.62_niy06.doc
Скачиваний:
23
Добавлен:
18.02.2017
Размер:
449.02 Кб
Скачать

Команды echo и read

Назначение: Для вывода данных в сценарии можно использовать команду echo, а для считывания входной информации в переменные – команду read. Команда echo посылает данные на стандартное устройство вывода. То же самое она делает и в сценарии. Эти данные имеют форму строки символов. Команда echo может выводить не только строковые константы, но и значения переменных. Команда read считывает значение, которое должно быть присвоено переменной. Она позволяет пользователю вводить значение переменной в интерактивном режиме. Фактически команда read читает строку со стандартного устройства ввода. Все, что посылается на стандартный ввод с клавиатуры – вплоть до символа новой строки – считывается и присваивается в качестве значения переменной. В программах можно объединять команды echo и read. С помощью комбинации этих команд пользователю предлагается ввести значение, которое затем считывается в переменную.

Синтаксис:

$ echo текст_выражения

Опции:

echo –n,e

-n выводит только одну строку текста, которая помещается по ширине экрана

-e включает распознавание символов типа \ .

Команда echo и управляющие символы:

Символ Действие при печати

\b Возврат на один симол

\c Подавление перехода на новую строку

\f Перевод страницы

\n Новая строка

\r Возврат каретки

\t Символ табуляции

\\ Обратный слэш

Примеры:

Greetvar

echo Please enter a greeting:

read greeting

echo “The greeting you entered was $greeting”

$ greetvar

Please enter a greeting:

Hi

The greeting you entered was hi

$

В сценарии greetvar пользователю предлагается ввести значение переменной greetvar. Команда read считывает значение, введенное пользователем, и присваивает его переменной greeting.

Коды завершения

Переменная shell ? содержит код завершения последней выполненной команды.

0 команда выполнена без ошибки (true)

не 0 команда завершена в связи с ошибкой (false)

Примеры:

$ true

$ echo $?

0

$ ls

$ echo $?

0

$ echo $?

0

$ false

$ echo $?

1

$cp

Usage : cp f1 f2

...

$ echo $?

1

$ echo $?

0

Команда test

Назначение: Команда test оценивает истинность выражения и формирует код завершения, т.е. фактически сравнивает две величины и, если сравнение выполнено успешно, выдает код завершения 0. С помощью команды test можно сравнивать целые числа, строки, файлы и даже выполнять логические операции. Команда состоит из ключевого слова test и сравниваемых величин, разделенных опцией, которая задает тип сравнения. Существуют две строковые операции, в которых вместо опции используется оператор. При сравнении двух строк на равенство используется знак =, при сравнении на неравенство применяются знаки !=. Вместо ключевого слова test можно использовать квадратные скобки, которые должны быть выделены разделителями: пробелами, знаками табуляции или символами новой строки (т.е. нажатием клавиши Enter). Без разделителей квадратные скобки недействительны. Не забывайте о различиях между опциями, используемыми для строк, и опциями, используемыми для целых чисел. Shell трактует все аргументы как числа в случае, если осуществляется сравнение чисел, и все аргументы как строки, если осуществляется сравнение строк. Общим правилом является необходимость заключений в двойные кавычки всех выражений вида $переменная, что предотвращает неподходящую замену переменных shell’ом.

Синтаксис:

$ test значение –опция значение

$ test строка = строка

$ test –опция имя файла

или

$ [ значение –опция значение ]

$ [ строка = строка ]

$ [ -опция имя файла ]

Опции:

Функции сравнения целых

-gt Больше чем

-lt Меньше чем

-ge Больше или равно

-le Меньше или равно

-eq Равно

-ne Не равно

Функции сравнения строк

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

-n Проверка на строковое значение

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

!= Проверка на неравенство строк

str Проверка на строку ненулевой длины

Логические операции

-а Логическое И

-о Логическое ИЛИ

! Логическое НЕ

Функции тестирования файлов

-f Истина, если файл существует и является обычным файлом, т.е. не каталогом и не файлом устройства

-s Истина, если файл существует и его размер больше нуля

-r Истина, если файл существует и доступен для чтения

-w Истина, если файл существует и доступен для записи

-x Истина, если файл существует и доступен для выполнения

-d Истина, если файл существует и является именно каталогом

Примеры:

$ [ $X -lt 7 ]

$ echo $?

0

$ X=abc

$ [ “$X” != “abc” ]

$ echo $?

1

$ test -f file или [ -f file ]

$ echo $?

0

Соседние файлы в папке Лабы1