Книга: Операционная система UNIX

Ввод

Ввод

Как мы уже видели, присвоение значений переменным может осуществляться явно или с помощью вывода некоторой программы. Команда read предоставляет удобный способ присвоить переменным значения, считанные из стандартного потока ввода. Это может быть строка, введенная пользователем или считанная из файла в случае перенаправления потока.

Команда read считывает строку из стандартного потока ввода и последовательно присваивает переменным, переданным в качестве параметров, значения слов строки. Если число слов в строке превышает число переменных, то в последней переменной будут сохранены все оставшиеся слова. Продемонстрируем это на простом примере:

Текст скрипта test5.sh:

#!/bin/sh
echo "input: "
while read var1 var2 var3
do
 echo var1=$var1
 echo var2=$var2
 echo var3=$var3
 echo "input: "
done

Запуск скрипта

$ test5.sh
input: пример работы команды read
var1=пример
var2=работы
var3=команды read
input: еще пример
var1=еще
var2=пример
var3=
input: ^D
$

В приведенном примере read в цикле считывает пользовательский ввод. Цикл завершается, когда достигнут конец файла (что эквивалентно пользовательскому вводу <Ctrl>+<D>), поскольку при этом read возвращает неудачу (код возврата равен 1) и while завершает работу. В первом цикле число введенных слов превышает количество переменных, поэтому значение переменной var3 состоит из двух слов. Во втором цикле значение var3 пусто.

Оглавление книги


Генерация: 0.072. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз