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

Интервал:

Закладка:

Сделать

^D

Затем, когда спустя несколько месяцев вам потребуется вспомнить текст заметки, вы сможете сделать это с помощью reminder, как показано в листинге 3.4.

Листинг 3.4.Тестирование сценария remindme

$ remindme film reviews

Find Dave’s film reviews at http://www.DaveOnFilm.com/

Или, если вы не можете быстро вспомнить номер телефона, из которого известны только цифры 800, листинг 3.5 демонстрирует, как выполнить поиск по частично известному номеру.

Листинг 3.5.Поиск номера телефона по известной последовательности цифр с помощью сценария remindme

$ remindme 800

Southwest Airlines: 800-IFLYSWA

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

Конечно, не каждый сценарий демонстрирует чудеса программирования, но эти два сценария наглядно показывают, насколько легко расширить возможности командной строки Unix. Чтобы вы себе ни вообразили, наверняка найдется простой способ реализовать это.

В рассмотренные сценарии можно внести много разных усовершенствований. Например, ввести понятие записей : сценарий remember снабжает каждую запись датой и временем, многострочный текст сохраняется как одна запись, а поиск выполняется с использованием регулярных выражений. Такой подход позволит сохранять телефонные номера для групп людей и получать их, помня имя хотя бы одного члена группы. Если вы действительно задумаетесь над усовершенствованием сценария, можете добавить также функцию редактирования и удаления записей. Хотя, с другой стороны, файл ~/.remember легко отредактировать с помощью любого текстового редактора.

№ 23. Интерактивный калькулятор

Если вы помните, scriptbc (сценарий № 9 в главе 1) позволял вызывать калькулятор bc для вычисления выражений, передаваемых в виде аргументов командной строки. Следующий логичный шаг — написать сценарий-обертку, превращающую сценарий scriptbc в интерактивный калькулятор командной строки. Сценарий (приводится в листинге 3.6) получился действительно очень коротким! Но чтобы он заработал, не забудьте поместить сценарий scriptbc в один из каталогов из списка PATH.

Код

Листинг 3.6.Сценарий калькулятора командной строки calc

··#!/bin/bash

··# calc — калькулятор командной строки, который действует как интерфейс к bc

··scale=2

··show_help()

··{

····cat << EOF

······In addition to standard math functions, calc also supports:

······a % b····remainder of a/b

······a ^ b····exponential: a raised to the b power

······s(x)···· sine of x, x in radians

······c(x)···· cosine of x, x in radians

······a(x)···· arctangent of x, in radians

······l(x)···· natural log of x

······e(x)···· exponential log of raising e to the x

······j(n,x)·· Bessel function of integer order n of x

······scale N··show N fractional digits (default = 2)

··EOF

··}

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

····exec scriptbc "$@"

··fi

··echo "Calc-a simple calculator. Enter 'help' for help, 'quit' to quit."

··/bin/echo −n "calc> "

картинка 183··while read command args

··do

····case $command

····in

······quit|exit) exit 0································;;

······help|\?)·· show_help····························;;

······scale)···· scale=$args··························;;

······*)········ scriptbc −p $scale "$command" "$args";;

····esac

····/bin/echo −n "calc> "

··done

··echo ""

··exit 0

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

Самая интересная часть в этом сценарии — инструкция while read картинка 184, которая образует бесконечный цикл, отображающий приглашение calc>, пока пользователь не завершит работу вводом команды quit или признака конца файла ( ^D). Лаконичность сценария делает его особенно примечательным: сценарии командной строки должны быть простыми и практичными!

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

Сценарий использует scriptbc, калькулятор, который мы написали в сценарии № 9, поэтому, прежде чем запускать его, не забудьте поместить scriptbc в один из каталогов, перечисленных в списке PATH (или добавьте в сценарий переменную, например $scriptbc, содержащую полный путь к сценарию). По умолчанию данный сценарий выполняется в интерактивном режиме, предлагая пользователю вводить выражения для вычисления. Если запустить его с аргументами, эти аргументы будут переданы непосредственно сценарию scriptbc. В листинге 3.7 показаны оба способа использования сценария.

Результаты

Листинг 3.7.Тестирование сценария calc

$ calc 150 / 3.5

42.85

$ calc

Calc −a simple calculator. Enter 'help’ for help, 'quit’ to quit.

calc> help

··In addition to standard math functions, calc also supports:

··a % b···· remainder of a/b

··a ^ b···· exponential: a raised to the b power

··s(x)······sine of x, x in radians

··c(x)······cosine of x, x in radians

··a(x)······arctangent of x, in radians

··l(x)······natural log of x

··e(x)······exponential log of raising e to the x

··j(n,x)····Bessel function of integer order n of x

··scale N·· show N fractional digits (default = 2)

calc> 54354 ^ 3

160581137553864

calc> quit

$

ВНИМАНИЕ

Вычисления с вещественными числами, даже простые для человека, могут быть сложными для компьютеров. К сожалению, команда bc иногда реагирует на такие сложности самым неожиданным образом. Например, запустите bc и введите scale=0 и затем 7 % 3. А теперь попробуйте вычислить то же выражение с scale=4. В результате вы получите.0001, что, очевидно, является ошибкой.

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

Все, что можно сделать в bc, можно сделать и в этом сценарии, с той лишь разницей, что calc не имеет памяти команд или состояний. Попробуйте добавить больше математических функций в справочное сообщение. Например, переменные obase и ibase позволяют определить основание системы счисления для вывода и ввода, однако из-за того, что сценарий не имеет памяти команд, вам придется изменить scriptbc (сценарий № 9 в главе 1) или научиться вводить настройки и выражения в одной строке.

№ 24. Преобразование температур

Сценарий в листинге 3.8 — первый в книге, выполняющий сложные математические вычисления, — может преобразовывать значение температуры в градусы Фаренгейта, Цельсия и Кельвина. В нем используется тот же трюк передачи выражений для вычисления калькулятору bc, что и в сценарии № 9, в главе 1.

Код

Листинг 3.8.Сценарий convertatemp

··#!/bin/bash

··# convertatemp — сценарий преобразования температуры, позволяющий вводить

··#·· температуру в градусах Фаренгейта, Цельсия или Кельвина и получать

··#·· эквивалентную температуру в двух других шкалах

··if [$# −eq 0]; then

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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