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

Тут можно читать онлайн Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2017
  • Город:
    СПб.
  • ISBN:
    978-5-496-03029-8
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - читать книгу онлайн бесплатно, автор Дейв Тейлор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

··exit 0

}

while getopts "df: r: v: " opt; do

··case $opt in

····d) demovoices list··;;

····f) input="$OPTARG"··;;

····r) rate="-r $OPTARG";;

····v) voice="$OPTARG"··;;

··esac

done

shift $(($OPTIND — 1))

if [$# −eq 0 −a — z "$input"]; then

··$dosay "Hey! You haven't given me any parameters to work with."

··echo "Error: no parameters specified. Specify a file or phrase."

··exit 0

fi

if ["$1" = "demo"]; then

··demovoices

fi

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

··$dosay $rate −v "$voice" −f $input

else

··$dosay $rate −v "$voice" "$*"

fi

exit 0

Как это работает

В действительности в системе установлено больше голосов, чем указано в сводке (просто здесь перечислены голоса, оптимизированные для английского языка). Чтобы получить полный список, выполните оригинальную команду say с параметрами −v \?. Ниже приводится сокращенная версия полного списка голосов:

$ say −v \?

Agnes······en_US··# Разве не прекрасно иметь компьютер, который говорит с вами?

Albert···· en_US··# В моем горле живет лягушка. Да, самая настоящая лягушка!

Alex······ en_US··# Многие узнают меня по голосу.

Alice······it_IT··# Привет, меня зовут Алиса, я говорю по-итальянски.

-опущено-

Zarvox···· en_US··# Это похоже на мирную планету.

Zuzana···· cs_CZ··# Добрый день, меня зовут Сюзанна. Я говорю по-чешски.

$

Наши любимые дикторы — Пайп Орган (Pipe Organ, «Мы должны радоваться этому болезненному голосу») и Зарвокс (Zarvox, «Это похоже на мирную планету»).

Очевидно, что на выбор дается очень много голосов. Плюс, у некоторых из них очень неправильное английское произношение. Одно из решений этой проблемы — фильтровать дикторов по "en_" (или другому языку по вашему выбору), чтобы получить только голоса с нужным произношением. Для выбора американского английского языка можно использовать фильтр "en_US", но другие английские голоса тоже стоит послушать. Полный список голосов извлекается в строке картинка 546.

Мы добавили в конец блока сложную череду подстановок с помощью sed, потому что этот список построен не совсем правильно: он включает имена, состоящие из одного (Fiona) и из двух слов (Bad News), а также дополнительные пробелы для выравнивания вывода по колонкам. Чтобы решить эту проблему, первый пробел в каждой строке заменяется символом подчеркивания, а все остальные пробелы удаляются. Если имя голоса состоит из одного слова, оно будет выглядеть так: "Ralph_", и заключительная подстановка sed удалит любые завершающие подчеркивания. В конце процесса остаются имена из двух слов с подчеркиванием, поэтому их нужно исправить перед выводом на экран. Однако код имеет интересный побочный эффект, в результате которого цикл while проще написать, использовав в качестве разделителя пробел.

Другой интересный блок картинка 547, где каждый голос представляет себя, выполняется, когда данный сценарий вызывается как sayit demo.

Все это очень просто, нужно лишь разобраться, как работает сама команда say.

Запуск сценария

Так как этот сценарий воспроизводит речь, мы немногое можем показать в книге, а поскольку мы пока не выпустили аудиверсию «Сценариев командной оболочки» (вы сумеете представить себе все то, чего нельзя показать на картинке?), вам придется поэкспериментировать самостоятельно. Однако сценарий может перечислить и воспроизвести все установленные голоса, как показано в листинге 13.11.

Результаты

Листинг 13.11.Запуск сценария sayit для вывода списка поддерживаемых голосов и их озвучивания

$ sayit −d

Available voices: Agnes, Albert, Alex, Bad News, Bahh, Bells, Boing,

Bruce, Bubbles, Cellos, Daniel, Deranged, Fred, Good News, Hysterical,

Junior, Karen, Kathy, Moira, Pipe Organ, Princess, Ralph, Samantha,

Tessa, Trinoids, Veena, Vicki, Victoria, Whisper, Zarvox

HANDY TIP: use "sayit.sh demo" to hear all the different voices

$ sayit "Yo, yo, dog! Whassup?"

$ sayit −v "Pipe Organ" −r 60 "Yo, yo, dog! Whassup?"

$ sayit −v "Ralph" −r 80 −f alice.txt

Усовершенствование сценария

Детальное исследование вывода команды say −v \? показало, что существует по меньшей мере один голос, для которого неправильно указан код языка. Для имени Fiona указан код en-scotland, а не en_scotland, что нарушает единообразие (учитывая, что для имени Moira указан код языка en_IE, а не en-irish или en-ireland). Вы легко могли бы усовершенствовать сценарий, чтобы он обрабатывал коды обоих видов: en_ и en-. В остальном поэкспериментируйте сами и подумайте, когда было бы полезно иметь сценарий или демона, общающегося с вами.

Глава 14. ImageMagick и обработка графических файлов

Командная строка в Linux обладает необычайно широким диапазоном возможностей, но так как она имеет текстовый интерфейс, то не позволяет выполнять сколько-нибудь сложную обработку графики. Или это не так?

Оказывается, практически в любом окружении командной строки, от OSX до Linux и многих других систем, доступен необычайно мощный пакет утилит командной строки, ImageMagick. Чтобы опробовать сценарии в этой главе, вам придется загрузить и установить пакет с сайта http://www.imagemagick.org/или воспользоваться системным диспетчером пакетов, таким как apt, yum или brew, если вы этого не сделали, когда знакомились со сценарием № 91 из главы 13.

Так как утилиты предназначены для работы в командной строке, они занимают очень мало дискового пространства, что-то около 19 Мбайт (для Windows-версии). Вы можете также получить исходный код пакета, если хотите посмотреть, как выглядит внутри такое мощное и гибкое программное обеспечение. И снова открытое ПО побеждает.

№ 94. Интеллектуальный анализатор размеров изображений

Команда file позволяет определять типы файлов и в некоторых случаях даже размеры изображений. Но очень часто она терпит неудачу:

$ file * | head -4

100_0399.png:····PNG image data, 1024 x 768, 8-bit/color RGBA, non-interlaced

8t grade art1.jpeg:··JPEG image data, JFIF standard 1.01

99icon.gif:··········GIF image data, version 89a, 143 x 163

Angel.jpg:·········· JPEG image data, JFIF standard 1.01

Файлы PNG и GIF не вызывают проблем, но как быть с не менее распространенными файлами JPEG? Команда file не смогла определить размеры изображений. Какая досада!

Код

Давайте устраним эту проблему с помощью сценария (листинг 14.1), который использует инструмент identify из пакета ImageMagick, чтобы точно определить размеры изображения.

Листинг 14.1.Сценарий imagesize

#!/bin/bash

# imagesize — выводит информацию о файле изображения и определяет размеры,

#·· используя утилиту identify из пакета ImageMagick.

for name

do

картинка 548··identify −format "%f: %G with %k colors.\n" "$name"

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

Интервал:

Закладка:

Сделать


Дейв Тейлор читать все книги автора по порядку

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




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


Отзывы читателей о книге Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание, автор: Дейв Тейлор. Читайте комментарии и мнения людей о произведении.


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

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