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

# Если опция ожидает дополнительный аргумент ("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". Может найти применение в ситуациях, когда несколько сценариев пользуются одним файлом с данными или библиотекой функций.

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

#!/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"

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных