Перенаправление ввода-вывода.
Каждая запущенная программа имеет три ассоциированных канала: стандартный ввод, стандартный вывод и стандартный канал диагностики ошибок. По умолчанию стандартный ввод закреплен за клавиатурой а стандартный вывод и канал ошибок закреплены за монитором. Однако шелл позволяет связать эти каналы с файлами абсолютно прозрачно для выполняемой программмы, т.к. изменения вывода и ввода осуществляются на системном уровне. Примеры перенаправлений ввода-вывода:
Пайпы. Две или более программ могут быть объединены таким образом что результат одной программы попадет на вход другой. При этом данные от одной программы к другой следуют через програмный канал, например:
program1 | program2 | program3 или более реалистичный пример:
ls –l /etc | more Примечание: пайпы всегда работают лишь в одном направлении – со стандартного выхода одной к стандартному входу другой программы.
Расширение имен файлов.
В целях уменьшения количества набираемых символов при вводе имен файлов шел поддерживает метасимволы. Нпример для того чтобы вывести листинг всех файлов в текущей директории имена которых начинаются с буквы a достаточно воспользоваться командой ls –l a*
ниже приведена таблица основных метасимволов
Shell скрипты Выполнение скриптов.
Несколько команд обьедененных одной последовательностью выполнения называется скриптом. Например последовательное выполнения команд, пайпы являются простейшими скриптами. Обычно команды из которых состоят скрипты сохраняют в файлах. Для запуска скрипта можно воспользоваться двумя методами:
sh <имя_файла_скрипта> или установить атрибут выполняемости на файл командой
chmod +x <имя_файла_скрипта>
После чего можно выполнять скрипт:
./<имя_файла_скрипта> Вывод текста.
Для формирования вывода текстовой информации в скриптах используют команду
echo “строка” Файл .profile .
Каждый раз во время входа в систему Bourne Shell автоматически запускает файл .profile (скрипт) находящийся в вашей домашней директории. Этот скрипт устанавливает “окружение” в котором Вам предстоит работать. Это различные переменные окружения отвечающие за вид системной подсказки, путь поиска исполняемых файлов, тип терминала и.т.п. Приведем список основных переменных окружения.
· PATH устанавливает путь поиска исполняемых файлов и представляет собой набор директорий разделенных двоеточием · MAIL определяет имя файла почтового ящика для уведомления о приходе новой электронной почты · MAILCHECK параметр показывающий как часто (в секундах) следует проверять почтовый ящик на предмет прихода новой почты · HOME определяет домашний каталог (каталог по умолчанию). Команда cd без параметров выполняет переход в этот каталог. · PS1 основная системная подсказка (по умолчаию $) · PS2 вторичная системная подсказка (по умолчанию >) · SHELL имя логин шелла пользователя · TERM тип терминала пользователя · EDITOR имя текстового редактора по умолчанию
Устанавливать переменные окружения можно по разному. Например команды
PATH=/bin:/usr/bin:/usr/sbin:/usr/contrib/bin:/usr/local/bin и
PATH=/bin:/usr/bin:/usr/sbin PATH=$PATH: :/usr/contrib/bin:/usr/local/bin
полностью эквивалентны. Для того чтобы эти переменные вошли в системное окружение (кроме шела, стали доступны и другим программам) необходимо выполнит команду
export <имя_переменной> Комментарии. Текст следующий за символом # рассматривается шелом как комментарий и не оказывает никакого влияния на работу скрипта.
Основы программирования на языке shell
Параметры.
В дополнение к стандартным параметрам шела можно создавать свои параметры, кторые затем можно использовать в командах. Например
$ x=test $ echo $x test
$ aaa=/ $ ls $aaa
cdrom home nsmail tcb var SD_CDROM dev lib opt tmp TT_DB etc lost+found sbin tmp_mnt Bin export net stand usr
При включении параметров в строку или в выражение знак $ должен предшествовать параметру. Также необходимо пользоваться следующими правилами:
${parameter} значение параметра заключенного в скобки будет использовано в выражении. Скобки {} используются когда за параметром следуют буквы или цифры не относящиеся к парамаметру. Например если значение параметра xxx равно test то значение выражения ${xxx}123 будет равняться test123
${parameter:-word} если параметр установлен и не пустой то результатом выражения будет являться значение параметра, в противном случае в результате будет использовано значение параметра word. Например: ${xxx:-/usr/bin/sh} если xxx пустой то результатом выражения будет являться строка /usr/bin/sh
${parameter:=word} если параметр неустановлен или пустой, тогда значение word будет результатом выражения. ${parameter:+word} если параметр установлен и не пустой, тогда результатом выражения является word, в противном случае результат пустой.
Популярное: Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (192)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |