русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Выполнение shell–программ


Дата добавления: 2014-11-28; просмотров: 668; Нарушение авторских прав


Любая, хранимая в файле команда или последовательность команд системы UNIX, называется shell–программой или командным файлом. Обычно термин «командный файл» относят к простой последовательности команд, а «shell–программа» – к их более сложно организованным наборам, в которых часто используются условные команды shell и другие дополнительные средства.

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

1. Первый из них основан на том, что путем переадресации можно обеспечить ввод команд из файла:

$ sh<dw

Результат достаточно ясен: sh будет читать команды из файла dw, игнорируя двоеточие и пропуская комментарии (аналогично тому, как если бы вы набрали data; who).

2. Даже без переназначения sh воспринимает dw в качестве аргумента, выделяя из него две команды и выполняя их с идентичными результатами. Программа sh (как и многие другие программы Unix) может воспринимать свои входные данные из файла, заданного в качестве аргумента, независимо от того, используете вы переназначение или нет:

$ sh dw

Хотя эти два примера дают один и тот же результат, с технической точки зрения они различны. В примере sh dw командный процессор сохраняет в качестве стандартного ввода вашу клавиатуру, а в случае sh<dw стандартный ввод переназначается на файл dw.

Описав два способа использования dw необходимо уточнить, что dw – это еще не настоящий сценарий командного процессора. По определению сценарий командного процессора – это выполняемый текстовый файл, который может работать как обычная команда.

3. Третий метод состоит в том, что для выполнения shell–программы требуется лишь указать ее имя, так как работа с ней ничем не отличается от работы с другими программами, достаточно при этом установить разрешение на выполнение файла, выполнив команду изменения его кода защиты:



$ chmod a+x dw

(Так как а задается по умолчанию, будет работать и просто +х)

При таком вызове исходный командный процессор распознает, что dw – это сценарий командного процессора (поскольку это выполняемый текстовый файл, а не выполняемый двоичный), и немедленно порождает командный процессор для чтения и выполнения команд dw. Подпроцессор выполняет необходимые действия, родительский командный процессор ждет, пока подпроцессор закончит свою работу. Сигнал конца файла, генерируемый, когда dw все сделает, уничтожает процесс командного процессора (точно так же, как если бы вы нажали Ctrl–D). Родительский командный процессор активизируется вновь, и выводит приглашение.

Для вызова dw можно применить команду точки.

$ .dw

Исходный командный процессор сам считывает и выполняет найденные в файле dw команды (командный подпроцессор не вызывается). Выводимые на экран результаты будут совпадать с командами sh<dw, sh dw и dw. Когда командный подпроцессор выполняет команду, все изменения (присваивания переменных, изменения в каталоге и т.д.), вносимые данной командой в операционную среду, влияют только на этот подпроцессор, При возврате в родительский командный процессор восстанавливается исходная среда. Все внесенные командой изменения сохраняются на выходе, так как команда с точкой выполняет свой аргумент–команду в текущем командном процессоре.

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

1. Предполагается, что вы работаете в своих собственных каталогах.

2. Ваш маршрут PATH включает в себя текущий каталог.

3. У вас есть необходимые полномочия чтения/записи.

Перед началом непосредственной интерпретации и выполнением команд, содержащихся в командных файлах, shell выполняет различные виды подстановок.

1. Подстановка результатов. Выполняются все команды, заключенные в обратные кавычки, и на их место подставляется результат.

2. Подстановка значений параметров и переменных. Т.е. слова, начинающиеся на "$", заменяются соответствующими значениями переменных и параметров.

3. Интерпретация пробелов. Заэкранированные пробелы игнорируются.

4. Генерация имен файлов. Проверяются слова на наличие в них спецсимволов ("*","?","[]") и выполняются соответствующие генерации.



<== предыдущая лекция | следующая лекция ==>
Отладка командных процедур | Создание новых команд


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.259 сек.