Читаем Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание полностью

# DIR — имитирует поведение команды DIR в DOS, принимает некоторые

#·· стандартные флаги команды DIR и выводит содержимое указанного каталога

function usage

{

cat << EOF >&2

··Usage: $0 [DOS flags] directory or directories

··Where:

····/D sort by columns

····/H show help for this shell script

····/N show long listing format with filenames on right

····/OD sort by oldest to newest

····/O-D sort by newest to oldest

····/P pause after each screenful of information

····/Q show owner of the file

····/S recursive listing

····/W use wide listing format

EOF

··exit 1

}

#####################

### ОСНОВНОЙ СЦЕНАРИЙ

postcmd=""

flags=""

while [$# −gt 0]

do

··case $1 in

····/D······) flags="$flags −x"··;;

····/H······) usage··············;;

····/[NQW]··) flags="$fl −l— l"··;;

····/OD····) flags="$flags −rt";;

····/O-D····) flags="$flags −t"··;;

····/P······) postcmd="more"····;;

····/S······) flags="$flags −s"··;;

··········*) # Неизвестный флаг: возможно, признак конца команды DIR;

··············#·· поэтому следует прервать цикл while.

··esac

··shift······ # Флаг обработан; проверить — есть ли что-то еще.

done

# Обработка флагов завершена; теперь выполнить саму команду:

if [! -z "$postcmd"]; then

··ls $flags "$@" | $postcmd

else

··ls $flags "$@"

fi

exit 0

<p>Как это работает</p>

Этот сценарий демонстрирует, что инструкция case в языке командной оболочки фактически проверяет регулярное выражение. Как можно видеть в строке , DOS-флаги /N, /Q и /W отображаются в один и тот же Unix-флаг −l в окончательном вызове команды ls, и все это достигается с помощью простого регулярного выражения /[NQW].

<p>Запуск сценария</p>

Сохраните сценарий в файле с именем DIR (также желательно создать псевдоним dir=DIR, потому что командный интерпретатор DOS не различает регистр символов, в отличие от Unix). Теперь, вводя команду DIR с флагами, типичными для команды DIR в MS-DOS, пользователи будут получать осмысленные результаты (как показано в листинге 2.18), а не сообщение о том, что команда не найдена.

<p>Результаты</p>

Листинг 2.18. Тестирование сценария DIR со списком файлов

$ DIR /OD /S ~/Desktop

total 48320

7720 PERP — Google SEO.pdf············ 28816 Thumbs.db

····0 Traffic Data······················8 desktop.ini

····8 gofatherhood-com-crawlerrors.csv··80 change-lid-close-behavior-win7-1.png

·· 16 top-100-errors.txt················176 change-lid-close-behavior-win7-2.png

····0 $RECYCLE.BIN······················400 change-lid-close-behavior-win7-3.png

····0 Drive Sunshine····················264 change-lid-close-behavior-win7-4.png

·· 96 facebook-forcing-pay.jpg·········· 32 change-lid-close-behavior-win7-5.png

10704 WCSS Source Files

Это список с содержимым указанного каталога, отсортированный в обратном хронологическом порядке, от более новых к более старым, и размерами файлов (для каталогов всегда выводится размер 0).

<p>Усовершенствование сценария</p>
Перейти на страницу:

Все книги серии Для профессионалов

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание
Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание

Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ. А решения даются так, что их легко можно взять за основу и экстраполировать на другие схожие задачи.Цель этой книги — продемонстрировать практические приемы программирования сценариев на bash и познакомить с самыми распространенными утилитами на коротких и компактных примерах, не вдаваясь в излишние подробности. Экспериментируйте с этими сценариями — ломайте, исправляйте и приспосабливайте их под свои нужды, чтобы понять, как они работают. Только так вы сможете решать самые сложные задачи.

Брендон Перри , Дейв Тейлор

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

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

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

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

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

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

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

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

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