Мендель Купер - Искусство программирования на языке сценариев командной оболочки

Здесь есть возможность читать онлайн «Мендель Купер - Искусство программирования на языке сценариев командной оболочки» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Искусство программирования на языке сценариев командной оболочки: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Искусство программирования на языке сценариев командной оболочки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

Искусство программирования на языке сценариев командной оболочки — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Искусство программирования на языке сценариев командной оболочки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

do

case $Option in

a ) # Действия, предусмотренные опцией 'a'.

b ) # Действия, предусмотренные опцией 'b'.

...

e) # Действия, предусмотренные опцией 'e', а так же необходимо обработать $OPTARG,

# в которой находится дополнительный аргумент этой опции.

...

g ) # Действия, предусмотренные опцией 'g'.

esac

done

shift $(($OPTIND - 1))

# Перейти к следующей опции.

# Все не так сложно, как может показаться ;-)

Пример 11-17. Прием опций/аргументов, передаваемых сценарию, с помощью getopts

#!/bin/bash

# ex33.sh

# Обработка опций командной строки с помощью 'getopts'.

# Попробуйте вызвать этот сценарий как:

# 'scriptname -mn'

# 'scriptname -oq qOption' (qOption может быть любой произвольной строкой.)

# 'scriptname -qXXX -r'

#

# 'scriptname -qr' - Неожиданный результат: "r" будет воспринят как дополнительный аргумент опции "q"

# 'scriptname -q -r' - То же самое, что и выше

# Если опция ожидает дополнительный аргумент ("flag:"), то следующий параметр

# в командной строке, будет воспринят как дополнительный аргумент этой опции.

NO_ARGS=0

E_OPTERROR=65

if [ $# -eq "$NO_ARGS" ] # Сценарий вызван без аргументов?

then

echo "Порядок использования: `basename $0` options (-mnopqrs)"

exit $E_OPTERROR # Если аргументы отсутствуют -- выход с сообщением

# о порядке использования скрипта

fi

# Порядок использования: scriptname -options

# Обратите внимание: дефис (-) обязателен

while getopts ":mnopq:rs" Option

do

echo $OPTIND

case $Option in

m ) echo "Сценарий #1: ключ -m-";;

n | o ) echo "Сценарий #2: ключ -$Option-";;

p ) echo "Сценарий #3: ключ -p-";;

q ) echo "Сценарий #4: ключ -q-, с аргументом \"$OPTARG\"";;

# Обратите внимание: с ключом 'q' должен передаваться дополнительный аргумент,

# в противном случае отработает выбор "по-умолчанию".

r | s ) echo "Сценарий #5: ключ -$Option-"'';;

* ) echo "Выбран недопустимый ключ.";; # ПО-УМОЛЧАНИЮ

esac

done

shift $(($OPTIND - 1))

# Переход к очередному параметру командной строки.

exit 0

Управление сценарием

source, . (точка)

Когда эта команда вызывается из командной строки, то это приводит к запуску указанного сценария. Внутри сценария, команда source file-nameзагружает файл file-name . Таким образом она очень напоминает директиву препроцессора языка C/C++ -- "#include". Может найти применение в ситуациях, когда несколько сценариев пользуются одним файлом с данными или библиотекой функций.

Пример 11-18. "Подключение" внешнего файла

#!/bin/bash

. data-file # Загрузка файла с данными.

# Тот же эффект дает "source data-file", но этот вариант более переносим.

# Файл "data-file" должен находиться в текущем каталоге,

#+ т.к. путь к нему не указан.

# Теперь, выведем некоторые переменные из этого файла.

echo "variable1 (из data-file) = $variable1"

echo "variable3 (из data-file) = $variable3"

let "sum = $variable2 + $variable4"

echo "Сумма variable2 + variable4 (из data-file) = $sum"

echo "message1 (из data-file): \"$message1\""

# Обратите внимание: кавычки экранированы

print_message Вызвана функция вывода сообщений, находящаяся в data-file.

exit 0

Файл data-file для Пример 11-18, представленного выше, должен находиться в том же каталоге.

# Этот файл подключается к сценарию.

# Подключаемые файлы могут содержать об"явления переменных, функций и т.п.

# Загружаться может командой 'source' или '.' .

# Инициализация некоторых переменных.

variable1=22

variable2=474

variable3=5

variable4=97

message1="Привет! Как поживаете?"

message2="Досвидания!"

print_message ()

{

# Вывод сообщения переданного в эту функцию.

if [ -z "$1" ]

then

return 1

# Ошибка, если аргумент отсутствует.

fi

echo

until [ -z "$1" ]

do

# Цикл по всем аргументам функции.

echo -n "$1"

# Вывод аргумента с подавлением символа перевода строки.

echo -n " "

# Вставить пробел, для разделения выводимых аргументов.

shift

# Переход к следующему аргументу.

done

echo

return 0

}

Сценарий может подключить даже самого себя, только этому едва ли можно найти какое либо практическое применение.

Пример 11-19. Пример (бесполезный) сценария, который подключает себя самого.

#!/bin/bash

# self-source.sh: сценарий, который рекурсивно подключает себя самого."

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Искусство программирования на языке сценариев командной оболочки»

Представляем Вашему вниманию похожие книги на «Искусство программирования на языке сценариев командной оболочки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Искусство программирования на языке сценариев командной оболочки»

Обсуждение, отзывы о книге «Искусство программирования на языке сценариев командной оболочки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x