Операционная система UNIX


Программы shell


Программы shell
9.1. Программы shell...
1 Создание простых программ shell
9.1.1. Создание простых программ shell Начнем описание создания простых программ shell, которые выполняют задачи: печать текущего справочника; список содержимого этого справочника; отображение...
2 Выполнение программ shell
9.1.2. Выполнение программ shell Выполнить shell программу вы можете с помощью команды sh. Введите: sh dl<CR>Когда команда dl выполняется с помощью sh, то вначале печатается имя пути текущ...
3 Создание справочника bin для исполняемых файлов
9.1.3. Создание справочника bin для исполняемых файлов Чтобы сделать shell программы доступными изо всех ваших справочников, вы можете создать справочник bin в своем регистрационном справочнике и...
4 Ограничения при именовании программ shell
9.1.4. Ограничения при именовании программ shell shell программе вы можете дать любое имя, не совпадающее с именами системных команд. Если имя вашей программы совпадает с именем команды систе...
Переменные
9.2. Переменные shell программы манипулируют с переменными. В этом пункте обсуждаются три типа переменных: позиционные параметры; специальные параметры; именованные переменные....
1 Позиционные параметры
9.2.1. Позиционные параметры Позиционные параметры являются переменными в shell программе. Их значение устанавливается из аргументов, указанных в командной строке, которая вызывает программу. П...
2 Специальные параметры
9.2.2. Специальные параметры Когда вы обращаетесь к программе shell, специальный параметр $# содержит число аргументов, с которыми shell программа была вызвана. Это значение может использоваться...
3 Именованные переменные
9.2.3. Именованные переменные В shell программе вы можете использовать именованные переменные. Значение именованной переменной вы присваиваете сами следующим образом: name_variable=value<CR&g...
4 Присвоение значений переменным
9.2.4. Присвоение значений переменным Если вы редактируете с помощью редактора vi, то знаете, что можно установить значения переменной TERM вводом следующей командной строки: TERM=terminal_...
9 2 4 1 Использование команды read
9.2.4.1. Использование команды read Общий формат команды read: read variable<CR> Значение, присвоенное командой read переменной variable, будет заменять $variable где бы она не встре...
9 2 4 2 Перенаправление вывода команды в переменную
9.2.4.2. Перенаправление вывода команды в переменную Формат команды следующий: variable=command<CR>Вывод команды становится значением переменной. Пример shell программы t, распечатывающе...
9 2 4 3 Присвоение позиционного параметра переменной
9.2.4.3. Присвоение позиционного параметра переменной Вы можете присвоить позиционный параметр именованному параметру следующим образом: var1=$1<CR>В следующем примере приведена программа...
Конструкции языка программирования shell
9.3. Конструкции языка программирования shell Язык программирования shell имеет несколько конструкций, которые придадут гибкость вашим программам: комметнарии позволят описывать функции прогр...
1 Комментарии
9.3.1. Комментарии Чтобы в программе разместить комментарии, воспользуйтесь знаком #. Если знак # стоит после команды, то сама команда выполняется, а комментарий игнорируется. Формат строки ком...
2 "Here document"
9.3.2. "Here document" "Here document" позволяет размещать в shell программе строки, которые перенаправляются в качестве ввода команды в этой программе. Это один из способов о...
3 Использование ed в shell программе
9.3.3. Использование ed в shell программе "Here document" предлагает способ использования ed в shell программе. Предположим вы хотите создать shell программу, которая будет вызывать р...
4 Коды завершения
9.3.4. Коды завершенияБольшинство команд shell возвращает коды, которые указывают, успешно ли завершилась команда. Если возвращаемое значение 0(ноль), то команда выполнилась успешно. Коды возвра...
9 3 4 1 Проверка кодов завершения
9.3.4.1. Проверка кодов завершения После выполнения в интерактивном режиме команды, вы можете увидеть код завершения при вводе: echo $? Рассмотрим следующий пример: $ cat hi This is f...
5 Циклы
9.3.5. Циклы Операторы цикла for и while позволяют выполнить команду или последовательность команд несколько раз....
9 3 5 1 Оператор for
9.3.5.1. Оператор for Оператор for выполняет последовательность команд для каждого элемента списка. Он имеет формат: for variable<CR> in a_list_of_values<CR> do<CR>...
9 3 5 2 Оператор while
9.3.5.2. Оператор while Оператор цикла while использует 2 группы команд. Он будет выполнять последовательность команд во второй группе (список do ... done) до тех пор пока последняя команда в пе...
6 Использование /dev/null
9.3.6. Использование /dev/null Файловая система имеет файл /dev/null, где вы можете хранить нежелательный вывод. Например, если просто ввести команду who, то система ответит, кто работает в систе...
7 Условные операторы
9.3.7. Условные операторы Оператор if ... then Команда if говорит shell программе, что нужно выполнить последовательность команд после then, если последняя команда в списке команд конструкции i...
8 Безусловная передача управления
9.3.8. Безусловная передача управления Команда break безусловно останавливает выполнение любого цикла, в котором он встречается и передает управление команде, следующей после ключевых слов done...
Отладка программы
9.4. Отладка программы Для нахождения и корректировки ошибок вам могут понадобиться две опции команды sh: sh -v shellprogramname печатает вводимые shell строки, как если бы они были...
1 Модификация окружения
9.4.1. Модификация окружения Система UNIX позволяет вам модифицировать конфигурацию, определяемую при вашей регистрации. Когда вы регистрируетесь в системе, shell вначале проверяет файл .profile...
2 Добавление команд в файл profile
9.4.2. Добавление команд в файл .profile Отредактируем файл и добавим следующую команду echo последней строкой в файл: echo Good Morning! I am ready to work for you.Если вы сделали какие-либо из...
3 Установка характеристик терминала
9.4.3. Установка характеристик терминала Команда stty может сделать вашу конфигурацию более удобной. Вы можете воспользоваться этой командой с опциями -tabs и echoe. stty -tabs - эта опция сохран...
Использование shell переменных
9.5. Использование shell переменных Несколько переменных, зарезервированных shell, используются в файле .profile. Рассмотрим 4 основные переменные: HOME - эта переменная дает имя пути вашего р...








- Начало -