Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные сети / Комп сети 4_shell.ppt
Скачиваний:
28
Добавлен:
22.02.2016
Размер:
231.42 Кб
Скачать

Программирование на языке shell

Программа shell является одной из наиболее важных утилит OC UNIX.

shell - это не только интерпретатор

команд системы UNIX ( типа command.com в DOS), но еще и язык программирования

на уровне таких команд (то есть можно создавать файлы типа '.bat' как в DOS).

1

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

-ввести команду;

-сделать перадресацию (перенаправление);

-создать конвейер.

Но это только часть возможностей написания программ на языке shell, версий которых очень много:

2

-командный процессор Борна – sh (более старый);

-командный процессор С – csh (более новый, но много различий в этих двух языках);

-командный процессор Корна – ksh (полностью совместим С Борном и включает многие черты С).

3

Любая хранимая в файле команда или последовательность команд системы UNIX

называется shell-программой или командным файлом.

Обычно командным файлом называют

простую последовательность команд, а "shell-программой" - их более сложные

структуры: с ветвлением, с циклом и др.

Существуют три способа инициализации shell для выполнения командных файлов.

4

1. Этот метод основан на переадресации ввода не с терминала, а с файла. Пусть

файл lsdir содержит некоторые команды, тогда можно выполнить:

sh < lsdir

2. В первом случае есть недостаток -

нельзя передавать аргументы.

Поэтому существует возможность в shell читать команды с файла, хранимые на

диске. Это можно сделать просто: sh lsdir

5

Здесь уже можно передавать аргументы, если Вы их предусмотрели.

Например,

sh lsdir/bin/etc

3. Если в файле право доступа на выполнение не подавлено ( установить такой доступ можно командой chmod a+x lsdir ), то тогда выполнить действие по команде из файла lsdir можно просто, набрав

lsdir

Этот способ является наиболее предпочтительным и часто используется.

6

shell переменные

Переменные в системе shell должны начинаться с буквы, состоять из букв, цифр и знака подчеркивания. Имена переменных чувствительны к регистру. Они могут быть любой длины из заглавных, строчных букв, также содержать цифры и специальные символы. Но они не должны начинаться с цифры и не могут содержать спец символы командного интерпретатора (*, $, ?, [, ], <, >)

7

Присваивание значений переменным

Значение переменным можно присвоить по команде присваивания:

ux=u.UNIX

ux=INIX

Здесь первым оператором значение u.UNIX присваивается shell-переменной

"ux", а вторым - ее значение меняется на новое. Желательно команды писать

строчными буквами, а переменные – всегда прописными.

Примечание: Перед знаком = и после не должно быть пробелов.

8

Если необходимо присвоить переменной значение, содержащее пробелы, знаки табуляции и символы новой строки, то оно должно быть заключено в кавычки:

name="Titov Vladidmir Ivanovich"

Команда readonly (только читать) помечает переменную таким образом, что ее значение не может быть изменено:

readonly ux

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

ux=uu.UNIX

9

то будет выдано сообщение об ошибке

"ux: is read only".

Поэтому, если в shell-программе значение переменной не должно меняться,

то имеет смысл применить команду readonly.

Если требуется получить список

переменных, которые нельзя изменить, то надо выполнить одну команду readonly без

параметров.

10

Соседние файлы в папке Компьютерные сети