Выбрать главу

Один из лучших справочников по командам Linux, имеет раздел, посвященный Bash.

*

The UNIX CD Bookshelf, 3rd edition, O'Reilly and Associates, 2003, 0-596-00392-7.

Сборник из 7-ми книг по UNIX на CD ROM. В состав сборника входят такие книги, как UNIX Power Tools, Sed and Awk и Learning the Korn Shell. Полный набор необходимых справочных и учебных материалов, который вам только может понадобиться. Стоит примерно $130.

*

Книги издательства O'Reilly, посвященные Perl.

---

Ben Okopnik опубликовал серию отличных статей introductory Bash scripting в выпусках 53, 54, 55, 57 и 59 на сайте Linux Gazette , и статью "The Deep, Dark Secrets of Bash" в выпуске 56.

Chet Ramey bash - The GNU Shell -- серия статей в 3 и 4 выпусках Linux Journal, Июль-Август 1994.

Mike G Bash-Programming-Intro HOWTO.

Richard UNIX Scripting Universe.

Chet Ramey Bash F.A.Q.

Ed Schaefer Shell Corner на Unix Review.

Примеры сценариев: Lucc's Shell Scripts .

Примеры сценариев: SHELLdorado .

Примеры сценариев: Noah Friedman's script site.

Steve Parker Shell Programming Stuff.

Примеры сценариев: SourceForge Snippet Library - shell scripts.

Giles Orr Bash-Prompt HOWTO.

Замечательное руководство по регулярным выражениям, sed и awk The UNIX Grymoire.

Eric Pement sed resources page.

The GNU gawk reference manual (gawk -- GNU-версия awk для ОС Linux и BSD).

Trent Fisher groff tutorial.

Mark Komarinski Printing-Usage HOWTO.

Хороший материал по перенаправлению ввода/вывода глава 10 на сайте University of Alberta.

Rick Hohensee osimpa -- ассемблер для процессора i386, написан полностью на Bash.

Rocky Bernstein ведет разработку "полнофункционального" отладчика для Bash.

---

Отличное руководство "Bash Reference Manual", авторы Chet Ramey и Brian Fox, распространяется в составе пакета "bash-2-doc" (доступен как rpm). В этом пакете вы найдете особенно поучительные примеры.

Группа новостей comp.os.unix.shell.

Страницы руководства man по bash и bash2, date, expect, expr, find, grep, gzip, ln, patch, tar, tr, bc, xargs. Странички info по bash, dd, m4, gawk и sed.

Приложение A. Дополнительные примеры сценариев

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

Пример 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, с подобной функциональностью.

#

# Хороший набор утилит для обработки текста и эффективный

#+ скриптовый язык -- это все, что необходимо, чтобы составить серьезную конкуренцию

#+ чрезмерно "раздутым" программам.

exit 0

Пример A-3. rn: Очень простая утилита для переименования файлов