Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционная система UNIX.doc
Скачиваний:
94
Добавлен:
01.05.2014
Размер:
1.67 Mб
Скачать

9.2.4.1. Использование команды read

Общий формат команды read:

read variable<CR>

Значение, присвоенное командой read переменной variable, будет заменять $variable где бы она не встречалась в программе пользователя. Если программа выполняет команду echo до команды read, то она сможет отобразить только:

Type in ...

Команда read будет ждать до тех пор, пока вы не введете строку символов и нажмете клавишу <CR>, тем самым присваивая строку переменной.

Следующий пример покажет вам, как написать простую shell программу num.please, содержащую телефонные номера. Эта программа использует следующие команды: echo - выдает подсказку для ввода фамилий клиентов; read - присваивает вводимое значение переменной; grep - просматривает файл list в поисках этой переменной.

Программа будет выглядеть следующим образом:

Пример.

$ cat num.please<CR>

echo Type in the list name:

read name

grep $name home/list

$

Создайте файл list, содержащий несколько фамилий и номеров телефонов. И теперь запустите файл num.please.

В следующем примере приводится текст программы mknum, которая создает список. В программе mknum используется следующая последовательность команд: echo - выдает подсказку для ввода имени клиента; read - присваивает имя клиента переменной name; echo - выдает подсказку для ввода номера телефона; read - присваивает номер телефона переменной num; echo - добавляет значение переменных name и num в файл list;

Если вы хотите, чтобы вывод команды echo добавлялся в конец списка, то вы должны использовать >>. Если вы будете использовать >, то список будет состоять из последего номера телефона, который вы добавили.

С помощью команды cat отобразите содержание программы mknum:

Пример.

$ cat mknum<CR>

echo Type in name

read name

echo Type in number

read num

echo $name $num >> list

$ chmod u+x mknum<CR>

$

9.2.4.2. Перенаправление вывода команды в переменную

Формат команды следующий:

variable=command<CR>

Вывод команды становится значением переменной. Пример shell программы t, распечатывающей время:

$ cat t<CR>

time=`date | cut -c12-19`

echo The time is: $time

$

Сделайте файл исполняемым и получите программу, которая выдает время:

$ chmod u+x t<CR>

$ t<CR>

The time is: 10:30

$

9.2.4.3. Присвоение позиционного параметра переменной

Вы можете присвоить позиционный параметр именованному параметру следующим образом:

var1=$1<CR>

В следующем примере приведена программа simp.p, которая присваивает позиционнный параметр переменной:

Пример.

$ cat simp.p<CR>

var1=$1

echo $var1

$

Также вы можете присвоить переменной вывод команды, которая использует позиционные параметры:

person=`who | grep $1`<CR>

9.3. Конструкции языка программирования shell

Язык программирования shell имеет несколько конструкций, которые придадут гибкость вашим программам:

  • комметнарии позволят описывать функции программы;

  • "here document" позволяет вам включать в shell программы строки, которые будут перенаправляться как ввод в некоторые команды shell программы;

  • команда exit позволяет завершать программу в нужной точке и использовать коды возврата;

  • конструкции цикла for, while позволяют повторять группу команд в цикле;

  • условные команды if и case выполняют группу команд, если выполнилось некоторое условие;

  • команда break позволяет выполнить безусловный выход из цикла.

Соседние файлы в предмете Операционные системы