Читайте также:
|
|
Пусть требуется перейти из домашнего каталога в каталог /bin, распечатать его содержимое и вернуться назад.
Последовательность команд, которая решает эту задачу, выглядит следующим образом:
% cd /bin
% ls –l | more
% cd
Запишем эту последовательность команд в файл с именем batch1.
Теперь можно вызвать интерпретатор командного языка Shell и передать ему в качестве аргумента имя командного файла:
% sh batch1
Unix позволяет сделать из текстового файла batch1 настоящую программу (команду). Для этого необходимо для файла batch1 установить в правах доступа разрешение на выполнение:
% chmod +x batch1
Теперь этот командный файл можно вызывать на выполнение так же, как и другие команды – по имени:
% batch1
Модифицируем командный файл batch1 так, чтобы можно было при вызове командного файла указывать имя каталога, оглавление которого необходимо распечатать, т.е. вызов командного файла должен выглядеть, например, так:
% batch1 /bin
где аргумент /bin задает имя каталога.
Заменим имя каталога /bin в первой строке командного файла batch1 на позиционную переменную $1:
Позиционная переменная $1 является формальным параметром и интерпретатор командного языка заменит его на фактический параметр – имя каталога, заданное в качестве аргумента при вызове командной процедуры batch1.
В общем случае алгоритм обработки интерпретатором команд строк командной процедуры следующий:
· интерпретатор читает очередную строку;
· выявляет метасимволы и переменные;
· производит необходимые замены и подстановки;
· после этого интерпретатор вызывает исполняемый файл, имя которого совпадает с именем команды, и передает ему строку параметров.
Дата добавления: 2014-12-19; просмотров: 156 | Поможем написать вашу работу | Нарушение авторских прав |