Мендель Купер - Искусство программирования на языке сценариев командной оболочки
- Название:Искусство программирования на языке сценариев командной оболочки
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Мендель Купер - Искусство программирования на языке сценариев командной оболочки краткое содержание
Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.
Искусство программирования на языке сценариев командной оболочки - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
*
Jerry Peek, Tim O'Reilly, and Mike Loukides, Unix Power Tools , 2nd edition, O'Reilly and Associates, Random House, 1997, 1-56592-260-3.
Содержит ряд очень информативных разделов, посвященных программированию в командной оболочке, но не может рассматриваться как учебное пособие.
*
Clifford Pickover, Computers, Pattern, Chaos, and Beauty , St. Martin's Press, 1990, 0-312-04123-3.
Сокровищница идей и рецептов по машинным вычислениям.
*
George Polya, How To Solve It , Princeton University Press, 1973, 0-691-02356-5.
Классический учебник по методам решения задач.
*
Arnold Robbins, Bash Reference Card , SSC, 1998, 1-58731-010-5.
Замечательный карманный справочник по Bash. Стоит всего $4.95, но также доступен для свободного скачивания on-line в формате PDF.
*
Arnold Robbins, Effective Awk Programming , Free Software Foundation / O'Reilly and Associates, 2000, 1-882114-26-4.
Самое лучшее учебное руководство и справочник по awk. Свободная электронная версия книги включена в состав документации к awk. Печатное издание последней версии доступно на сайте O'Reilly and Associates.
Эта книга служила источником вдохновения для автора этой книги.
*
Bill Rosenblatt, Learning the Korn Shell , O'Reilly and Associates, 1993, 1-56592-054-6.
Эта, хорошо написанная книга, содержит массу указаний по созданию сценариев командной оболочки.
*
Paul Sheer, LINUX: Rute User's Tutorial and Exposition , 1st edition, , 2002, 0-13-033351-4.
Очень хорошее введение в системное администрирование Linux.
Эта книга доступна в on-line.
*
Ellen Siever and the staff of O'Reilly and Associates, Linux in a Nutshell , 2nd edition, O'Reilly and Associates, 1999, 1-56592-585-8.
Один из лучших справочников по командам 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и awkThe UNIX Grymoire.
Eric Pement sed resources page.
The GNU gawkreference 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: Очень простая утилита для переименования файлов
Этот сценарий является модификацией Пример 12-15.
#! /bin/bash
#
# Очень простая утилита для переименования файлов
#
# Утилита "ren", автор Vladimir Lanin (lanin@csd2.nyu.edu),
#+ выполняет эти же действия много лучше.
ARGS=2
E_BADARGS=65
ONE=1 # Единственное или множественное число (см. ниже).
if [ $# -ne "$ARGS" ]
then
echo "Порядок использования: `basename $0` старый_шаблон новый_шаблон"
# Например: "rn gif jpg", поменяет расширения всех файлов в текущем каталоге с gif на jpg.
exit $E_BADARGS
fi
number=0 # Количество переименованных файлов.
for filename in *$1* # Проход по списку файлов в текущем каталоге.
do
if [ -f "$filename" ]
then
fname=`basename $filename` # Удалить путь к файлу из имени.
n=`echo $fname | sed -e "s/$1/$2/"` # Поменять старое имя на новое.
mv $fname $n # Переименовать.
let "number += 1"
fi
done
if [ "$number" -eq "$ONE" ] # Соблюдение правил грамматики.
then
echo "$number файл переименован."
else
echo "Переименовано файлов: $number."
fi
exit 0
# Упражнения:
# ----------
# С какими типами файлов этот сценарий не будет работать?
# Как это исправить?
#
# Переделайте сценарий таким образом, чтобы он мог обрабатывать все файлы в каталоге,
#+ в именах которых содержатся пробелы, заменяя пробелы символом подчеркивания.
Читать дальшеИнтервал:
Закладка: