Командный процессор и выполнение процессов и процедур


 

    Исторически в Unix развивалась несколько командных процессоров: C Sheel (c), B Shell (b), Korn Shell (ksh).

 

    Они имеют незначительные отличия, но выполняют одинаковый функционал:

 

    Ввод командной строки

 

    Разбор командной строки и ее операндов

 

    Выполнение параметрических и командных подстановок

 

    Выполнение команд

 

    В любой команде помимо обычных текстовых данных могут использоваться переменные. Чтобы вместо имени переменной подставить ее значение используется параметрическая подстановка. Для этого перед именем переменной ставиться ‘$’.

 

    Существует также командная подстановка, которая используется для подстановки вместо команды результата выполнения. Записывается с помощью обратных апострофов ``.

 

    Все перечисленные командные процессоры могут запускать на выполнение не только двоичные программы, но и процедуры (скрипты). Скрипт – последовательность команд, записанных в текстовом файле. При выполнении скрипта командный процессор считывает и выполняет команды друг за другом, будто они были введены с клавиатуры.

 

    Возможны следующие схемы выполнения программ и скиптов командными процессорами:

 

    Выполнение двоичной программы

 

 

    Для запуска двоичной программы Shell по fork создает свою копию SubShell.

 

    Для SubShell копируется среда основного Shell и SubShell по exec (т.е. сам на себя) запускает двоичные программы. Все изменения произведенные программой на исходную среду не повлияют.

 

    Выполнение скрипта может производиться двумя способами:

    Перенести переменные из вторичной среды в основную можно с помощью команды Export.

 

    Первичный Shell сам выполняет скрипт в своей собственной среде.

 

    По умолчанию используется вариант а, для использования б нужно перед вызовом скрипта указать ‘. имя_скрипта’.

 

    Все командные процессоры предоставляют возможности переадресации ввода\вывод и создания конвейеров:

 

    cmd1 ! cmd2 ! cmd3 – команды будут выполняться последовательно слева направо, результаты выполнения предыдущего будут для следующего являться исходными.

 

    cmd1 && cmd2 – при такой записи вторая команда будет выполняться, если первая завершилась без ошибок.

 

    cmd1 || cmd2 – вторая выполниться, если первая завершиться с ошибкой.

 

    (cmd1, cmd2, cmd3) > out.txt – команды выполняться последовательно слева направо, независимо друг от друга, а результаты записываются в файл.

 

    {cmd1, cmd2, cmd3} > out.txt – аналогично предыдущему, но с использованием первичного командного процессора.

 



Дата добавления: 2020-10-01; просмотров: 228;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.