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

Тут можно читать онлайн Мендель Купер - Искусство программирования на языке сценариев командной оболочки - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Искусство программирования на языке сценариев командной оболочки
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.7/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Искусство программирования на языке сценариев командной оболочки - описание и краткое содержание, автор Мендель Купер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

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

Искусство программирования на языке сценариев командной оболочки - читать книгу онлайн бесплатно, автор Мендель Купер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

for a in `seq $COUNT` # или так: for a in $( seq $COUNT )

do

echo -n "$a "

done # 1 2 3 4 5 ... 80

echo; echo

BEGIN=75

END=80

for a in `seq $BEGIN $END`

# Если "seq" передаются два аргумента, то первый означает начальное число последовательности,

#+ второй -- последнее,

do

echo -n "$a "

done # 75 76 77 78 79 80

echo; echo

BEGIN=45

INTERVAL=5

END=80

for a in `seq $BEGIN $INTERVAL $END`

# Если "seq" передется три аргумента, то первый аргумент -- начальное число в последовательности,

#+ второй -- шаг последовательности,

#+ и третий -- последнее число в последовательности.

do

echo -n "$a "

done # 45 50 55 60 65 70 75 80

echo; echo

exit 0

getopt

Команда getoptслужит для разбора командной строки, выделяя из нее ключи -- символы, с предшествующим знаком дефис. Этой утилите имеется, встроенный в Bash, аналог -- getopts, более мощная и универсальная команда.

Пример 12-40. Использование getopt для разбора аргументов командной строки

#!/bin/bash

# ex33a.sh

# Попробуйте следующие варианты вызова этого сценария.

# sh ex33a -a

# sh ex33a -abc

# sh ex33a -a -b -c

# sh ex33a -d

# sh ex33a -dXYZ

# sh ex33a -d XYZ

# sh ex33a -abcd

# sh ex33a -abcdZ

# sh ex33a -z

# sh ex33a a

# Объясните полученные результаты.

E_OPTERR=65

if [ "$#" -eq 0 ]

then # Необходим по меньшей мере один аргумент.

echo "Порядок использования: $0 -[options a,b,c]"

exit $E_OPTERR

fi

set -- `getopt "abcd:" "$@"`

# Запись аргументов командной строки в позиционные параметры.

# Что произойдет, если вместо "$@" указать "$*"?

while [ ! -z "$1" ]

do

case "$1" in

-a) echo "Опция \"a\"";;

-b) echo "Опция \"b\"";;

-c) echo "Опция \"c\"";;

-d) echo "Опция \"d\" $2";;

*) break;;

esac

shift

done

# Вместо 'getopt' лучше использовать встроенную команду 'getopts',

# См. "ex33.sh".

exit 0

run-parts

Команда run-parts [ 33 ] Фактически -- это сценарий, заимствованный из дистрибутива Debian Linux. запускает на исполнение все сценарии, в порядке возрастания имен файлов-сценариев, в заданном каталоге. Естественно, файлы сценариев должны иметь права на исполнение.

Демон crond вызывает run-partsдля запуска сценариев из каталогов /etc/cron.* .

yes

По-умолчанию, команда yesвыводит на stdout непрерывную последовательность символов y , разделенных символами перевода строки. Исполнение команды можно прервать комбинацией клавиш control- c. Команду yesможно заставить выводить иную последовательность символов. Теперь самое время задаться вопросом о практической пользе этой команды. Основное применение этой команды состоит в том, что вывод от нее может быть передан, через конвейер, другой команде, ожидающей реакции пользователя. В результате получается, своего рода, слабенькая версия команды expect.

yes | fsck /dev/hda1запускает fsckв неинтерактивном режиме (будьте осторожны!).

yes | rm -r dirnameимеет тот же эффект, что и rm -rf dirname(будьте осторожны!).

картинка 110Внимание! Передача вывода команды yesпо конвейеру потенциально опасным командам, таким как fsck или fdisk может дать нежелательные побочные эффекты.

banner

Печатает на stdout заданную строку символов (не более 10), рисуя каждый символ строки при помощи символа '#'. Вывод от команды может быть перенаправлен на принтер.

printenv

Выводит все переменные окружения текущего пользователя.

bash$ printenv | grep HOME

HOME=/home/bozo

lp

Команды lpи lprотправляют файлы в очередь печати [ 34 ] Очередь печати -- это группа заданий "ожидающих вывода" на принтер. для вывода на принтер. Названия этих команд произошли от "line printers".

bash$ lp file1.txtили bash lp

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

bash$ pr -options file1.txt | lp

Программы подготовки текста к печати, такие как groffи Ghostscript , так же могут напрямую взаимодействовать с lp.

bash$ groff -Tascii file.tr | lp

bash$ gs -options | lp file.ps

Команда lpqпредназначена для просмотра очереди заданий печати, а lprm-- для удаления заданий из очереди.

tee

[UNIX заимствовал эту идею из водопроводного дела.]

Это опрератор перенаправления, но с некоторыми особенностями. Подобно водопроводным трубам, "tee" позволяет "направить поток" данных в несколько файлов и на stdout одновременно, никак не влияя на сами данные. Эта команда может оказаться очень полезной при отладке.

tee

|------> в файл

|

===============|===============

command--->----|-operator-->---> результат работы команд(ы)

===============================

cat listfile* | sort | tee check.file | uniq > result.file

(Здесь, в файл check.file будут записаны данные из всех "listfile*", в отсортированном виде до того, как повторяющиеся строки будут удалены командой uniq.)

mkfifo

Эта, редко встречающаяся, команда создает именованный канал - очередь, через который производится обмен данными между процессами [ 35 ] Эта тема прекрасно освещена в статье, которую написал Andy Vaught, Introduction to Named Pipes, в сентябре 1997 для Linux Journal. . Как правило, один процесс записывает данные в очередь (FIFO), а другой читает данные из очереди. См. Пример A-17.

pathchk

Производит проверку полного имени файла -- проверяет, доступны ли на чтение, каталоги в пути к файлу, и не превышает ли длина полного имени файла 255 символов. При несоблюдении одного из условий -- возвращает сообщение об ошибке.

К сожалению, pathchkне возвращает соответствующего кода ошибки, и потому, в общем-то, бесполезна в сценариях. Вместо нее лучше использовать операторы проверки файлов.

dd

Эта немного непонятная и "страшная" команда ("data duplicator") изначально использовалась для переноса данных на магнитной ленте между микрокомпьютерами с ОС UNIX и майнфреймами IBM. Команда ddпросто создает копию файла (или stdin/stdout), выполняя по пути некоторые преобразования. Один из вариантов: преобразование из ASCII в EBCDIC [ 36 ] EBCDIC (произносится как "ebb-sid-ic") -- это аббревиатура от Extended Binary Coded Decimal Interchange Code (Расширенный Двоично-Десятичный Код Обмена Информацией). Это формат представления данных от IBM, не нашедший широкого применения. Не совсем обычное применение опции conv=ebcdic -- это использовать dd для быстрого и легкого, но слабого, шифрования текстовых файлов. cat $file | dd conv=swab,ebcdic > $file_encrypted # Зашифрованный файл будет выглядеть как "абракадабра". # опция swab добавлена для внесения большей неразберихи. cat $file_encrypted | dd conv=swab,ascii > $file_plaintext # Декодирование. , dd --helpвыведет список возможных вариантов преобразований и опций этой мощной утилиты.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Мендель Купер читать все книги автора по порядку

Мендель Купер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x