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



Программирование на языке сценариев командной оболочки - стр. 301


Пример A-1. manview: Просмотр страниц руководств man

#!/bin/bash # manview.sh: Просмотр страниц руководств man в форматированном виде.

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

E_WRONGARGS=65

if [ -z "$1" ] then echo "Порядок использования: `basename $0` имя_файла" exit $E_WRONGARGS fi

groff -Tascii -man $1 | less

# Если страница руководства включает в себя таблицы и/или выражения, # то этот сценарий "стошнит". # Для таких случаев можно использовать следующую строку. # # gtbl < "$1" | geqn -Tlatin1 | groff -Tlatin1 -mtty-char -man # # Спасибо S.C.

exit 0

Пример A-2. mailformat: Форматирование электронных писем

#!/bin/bash # mail-format.sh: Форматирование электронных писем.

# Удаляет символы "^", табуляции и ограничивает чрезмерно длинные строки.

# ================================================================= # Стандартная проверка аргументов ARGS=1 E_BADARGS=65 E_NOFILE=66

if [ $# -ne $ARGS ] # Проверка числа аргументов then echo "Порядок использования: `basename $0` имя_файла" exit $E_BADARGS fi

if [ -f "$1" ] # Проверка наличия файла. then file_name=$1 else echo "Файл \"$1\" не найден." exit $E_NOFILE fi # =================================================================

MAXWIDTH=70 # Максимальная длина строки.

# Удаление символов "^" начиная с первого символа строки, #+ и ограничить длину строки 70-ю символами. sed ' s/^>// s/^ *>// s/^ *// s/ *// ' $1 | fold -s --width=$MAXWIDTH # ключ -s команды "fold" разрывает, если это возможно, строку по пробельному символу.

# Этот сценарий был написан после прочтения статьи, в котором расхваливалась #+ утилита под Windows, размером в 164K, с подобной функциональностью. # # Хороший набор утилит для обработки текста и эффективный #+ скриптовый язык -- это все, что необходимо, чтобы составить серьезную конкуренцию #+ чрезмерно "раздутым" программам.




Содержание  Назад  Вперед