Дейв Тейлор - Сценарии командной оболочки. 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-е издание - читать книгу онлайн бесплатно, автор Дейв Тейлор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

После определения имени Music Folder остается только сгенерировать списки музыкальных произведений в двух системах Mac, затем с помощью команды diff сравнить их, чтобы увидеть, какие альбомы являются уникальными в той или иной системе, и, возможно, синхронизировать их.

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

Этот сценарий не имеет ни аргументов, ни флагов.

Результаты

Если у вас накопилась большая коллекция музыки, этот сценарий может вывести длинный список. В листинге 11.6 показаны первые 15 строк из коллекции Дейва.

Листинг 11.6.Запуск сценария ituneslist для вывода первых элементов в коллекции iTunes

$ ituneslist | head -15

Your library is at /Users/taylor/Music/iTunes/iTunes Media/

Audiobooks/Andy Weir

Audiobooks/Barbara W. Tuchman

Audiobooks/Bill Bryson

Audiobooks/Douglas Preston

Audiobooks/Marc Seifer

Audiobooks/Paul McGann

Audiobooks/Robert Louis Stevenson

iPod Games/Klondike

Movies/47 Ronin (2013)

Movies/Mad Max (1979)

Movies/Star Trek Into Darkness (2013)

Movies/The Avengers (2012)

Movies/The Expendables 2 (2012)

Movies/The Hobbit The Desolation of Smaug (2013)

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

Это не совсем усовершенствование, но… Поскольку путь к каталогу с медиатекой iTunes хранится как полный URL, было бы интересно попробовать создать в Интернете каталог iTunes и затем указать его URL как значение поля Music Folder в файле XML file.

№ 82. Исправление команды open

Одним из примечательных новшеств OS X, стала команда open, позволяющая легко запускать приложение, соответствующее файлу того или иного типа, будь то графическое изображение, документ PDF или электронная таблица Excel. Проблема команды open заключается в некоторой ее придирчивости. Чтобы запустить приложение по имени, необходимо добавить флаг −a. А если указать неточное имя приложения, команда сообщит об ошибке. Эта задача как раз для сценария-обертки, такого как в листинге 11.7.

Код

Листинг 11.7.Сценарий open2

··#!/bin/bash

··# open2 — интеллектуальная обертка для крутой команды OS X 'open',

··#·· чтобы сделать ее еще практичнее. По умолчанию 'open' запускает

··#·· приложение, соответствующее указанному файлу или каталогу,

··#·· опираясь на настройки интерфейса Aqua, и может запускать

··#·· приложения, только если они находятся в каталоге /Applications.

··# First, whatever argument we're given, try it directly.

картинка 473··if! open "$@" >/dev/null 2>&1; then

····if! open −a "$@" >/dev/null 2>&1; then

······# Больше одного аргумента? Непонятно, как обрабатывать их — выйти.

······if [$# −gt 1]; then

········echo "open: More than one program not supported" >&2

········exit 1

······else

картинка 474········case $(echo $1 | tr '[: upper: ]' '[: lower: ]') in

··········activ*|cpu··) app="Activity Monitor"··;;

··········addr*········) app="Address Book"······;;

··········chat········) app="Messages"··········;;

··········dvd··········) app="DVD Player"········;;

··········excel········) app="Microsoft Excel"····;;

··········info*········) app="System Information";;

··········prefs········) app="System Preferences";;

··········qt|quicktime) app="QuickTime Player"··;;

··········word········) app="Microsoft Word"····;;

··········*············) echo "open: Don't know what to do with $1" >&2

··············exit 1

········esac

········echo "You asked for $1 but I think you mean $app." >&2

········open −a "$app"

······fi

····fi

··fi

··exit 0

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

Этот сценарий крутится вокруг нулевого и ненулевого кода, полученного от программы open, которая возвращает ноль в случае успеха и ненулевое значение в случае неудачи картинка 475.

Если переданный аргумент не является именем файла, программа терпит неудачу и выполняется первое условие. Тогда сценарий пытается интерпретировать аргумент как имя приложения и добавляет в команду open флаг −a. Если программа терпит неудачу во второй раз, сценарий использует инструкцию case картинка 476, чтобы проверить слова, которые пользователи часто вводят вместо верных названий популярных приложений.

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

$ open2 excel

You asked for excel but I think you mean Microsoft Excel.

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

Сценарий open2 готов получить из командной строки одно или несколько имен файлов или приложений.

Результаты

Без этой обертки попытка открыть приложение Microsoft Word терпит неудачу:

$ open "Microsoft Word"

The file /Users/taylor/Desktop//Microsoft Word does not exist.

Угрожающее, казалось бы, сообщение появилось только потому, что пользователь забыл добавить флаг −a. Аналогичная попытка, но со сценарием open2, показывает, что больше нет необходимости помнить о флаге −a:

$ open2 "Microsoft Word"

$

Отсутствие вывода — хороший знак: приложение запущено и готово к использованию. Дополнительная поддержка коротких имен для обычных в OS X приложений обеспечивает успех команды open2 word, тогда как open −a word терпит неудачу.

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

Сценарий определенно выиграл бы, если бы список коротких имен соответствовал вашим личным потребностям или потребностям вашего сообщества пользователей. И это легко достижимо!

Глава 12. Сценарии для игр и развлечений

До настоящего момента все внимание мы уделяли серьезным областям применения сценариев, чтобы улучшить взаимодействие с системой и сделать систему более гибкой и мощной. Но существует еще одна область, которую стоит рассмотреть: игры.

Не волнуйтесь — мы не предлагаем вам написать Fallout 4 . Просто так получилось, что некоторые простые игры легко можно создать в виде сценариев командной оболочки. И разве не лучше учиться отладке сценариев на примере чего-то более забавного, чем утилита для приостановки действия учетной записи или анализа журнала ошибок Apache?

Для некоторых сценариев вам потребуются файлы, размещенные по адресу: http://www.nostarch.com/wcss2/. Загрузите этот архив прямо сейчас, если вы его еще не скачали.

ДВА КОРОТКИХ ТРЮКА

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

Чтобы что-то зашифровать по алгоритму rot13, это «что-то» нужно передать команде tr:

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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