Вы находитесь на странице: 1из 3

19.Командный интерпретатор Shell.

Пользователи Unix ,несмотря на то что существует графический интерфейс,


предпочитают интерфейс командной строки, называемой оболочкой(shell).
Интерфейс командной строки оболочки значительно быстрее в использовании,
существенно мощнее.
Интерпретатор командной строки, или shell (shell -- оболочка) -- эта та
программа, которая принимает команды от пользователя и исполняет их.
Оболочка Bash основана на оригинальной оболочке системы UNIX,которая
называется оболочкой Бурна. Когда оболочка запускается, она инициализируется, а
затем выводит на экран символ приглашения к вводу.
После того как пользователь введет командную строку,оболочка извлекает из нее
первое слово. Оболочка предполагает, что это слово является именем запускаемой
программы, ищет эту программу, если находит – запускает. Файлы, содержащие
команды оболочки, называются сценариями оболочки. Они могут присваивать
значения переменным оболочки, иметь конструкции if,for, while and case(операторы
цикла). Таким образом сценарии представляют собой программы, написанные на
языке оболочки.
Алгоритм работы Shell:
1. Выдать строку-приглашение
2. Получить командную строку
3. Разбить строку на слова
4. Разбить строку на команды
5. Выполнить подстановки
6. Проанализировать первое слово
7. Запустить команду на выполнение
8. Ждать завершения команды
9. Получить код завершения команды
Естественные задачи, для которых Shell пригоден, полезен и незаменим:

 выполнение компиляции, запуск заданий через make;


 сравнение текстовых файлов;
 разовые массовые действия (прибить много процессов);
 диагностика происходящего в системе (семафоры, локи, процессы,
дескрипторы, место на диске и т.п.);
 скриптование:
 установочные скрипты, для выполнения которых нельзя рассчитывать на
наличие других интерпретаторов — это не для новичков;
 функции для кастомизации интерактивного шелла (влияющие на приглашение,
меняющие каталог, устанавливающие переменные окружения) — тоже не
совсем для новичков;
 одноразовые скрипты типа массового перекодирования файлов;
 makefile-ы.

20. Общий синтаксис языка Bourne Shell

Скрипт представляет собой обычный текстовый файл, в котором записаны инструкции, понятные
командному интерпретатору. Это могут быть команды, выражения shell или функции. Командный
интерпретатор считывает эти инструкции из файла и последовательно выполняет их.

Безусловно, как и в случае любого другого языка программирования, применение комментариев


существенно облегчает последующее использование и модификацию написанной программы. В Bourne
shell комментарии начинаются с символа '#'

Поскольку в системе могут существовать скрипты для различных интерпретаторов, имя


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

#!/bin/bash

В данном случае последующий текст скрипта будет интерпретироваться Bourne shell. Заметим, что при
запуске скрипта из командной строки (для этого он должен обладать правом на выполнение — x), будет
запущен новый командный интерпретатор, ввод команд для которого будет выполняться из файла
скрипта.
21. Организация ввода/вывода программ командного интерпретатора Shell.
Когда программа запускается на выполнение в ее распоряжение представляются 3
потока:
 Стандартный ввод
 Стандартный вывод
 Стандартный поток сообщений об ошибках