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

Интервал:

Закладка:

Сделать

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

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

Результаты

Листинг 7.17.Запуск сценария convertcurrency

$ convertcurrency

Usage: convert amount currency to currency

Most common currencies are CAD, CNY, EUR, USD, INR, JPY, and MXN

Use "convertcurrency list" for a list of supported currencies.

$ convertcurrency list | head -10

List of supported currencies:

AED United Arab Emirates Dirham

AFN Afghan Afghani

ALL Albanian Lek

AMD Armenian Dram

ANG Netherlands Antillean Guilder

AOA Angolan Kwanza

ARS Argentine Peso

AUD Australian Dollar

AWG Aruban Florin

$ convertcurrency 75 eur to usd

75 EUR = 84.5132 USD

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

Несмотря на строгость и простоту веб-калькулятора, в вывод результатов все же можно добавить немного порядка. Например, вывод результатов пересчета в листинге 7.17 лишен смысла, поскольку сумма в долларах США в нем выражена числом с четырьмя знаками после запятой, даже при том, что для отображения количества центов достаточно двух знаков. Правильнее было бы вывести 84,51 или округлить до 84,52. Эту ошибку в сценарии желательно исправить.

И еще, пока вы не отвлеклись, хорошо бы добавить в сценарий проверку сокращенных обозначений валют. Пригодилось бы и преобразование кодов валют в полные названия, например, чтобы можно было выяснить, что AWG — это арубанские флорины или что BTC — это Bitcoin (Биткоин).

№ 61. Извлечение информации об адресе Биткоин

Система Биткоин (Bitcoin) вихрем ворвалась в наш мир, и даже появились компании, полностью основанные на цепочках блоков (blockchain, базовой технологии, на которой основана эта криптовалюта). Для тех, кому приходится работать с данной системой, получение полезной информации о конкретном адресе Биткоин нередко становится главной проблемой. Однако мы легко можем автоматизировать сбор данных с использованием короткого сценария на языке командной оболочки, представленного в листинге 7.18.

Код

Листинг 7.18.Сценарий getbtcaddr

#!/bin/bash

# getbtcaddr — получая адрес Биткоин, возвращает полезную информацию.

if [$# −ne 1]; then

··echo "Usage: $0

"

··exit 1

fi

base_url="https://blockchain.info/q/"

balance=$(curl −s $base_url" addressbalance/"$1)

recv=$(curl −s $base_url" getreceivedbyaddress/"$1)

sent=$(curl −s $base_url" getsentbyaddress/"$1)

first_made=$(curl −s $base_url" addressfirstseen/"$1)

echo "Details for address $1"

echo −e "\tFirst seen: "$(date −d @$first_made)

echo −e "\tCurrent balance: "$balance

echo −e "\tSatoshis sent: "$sent

echo −e "\tSatoshis recv: "$recv

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

Сценарий несколько раз вызывает команду curl, чтобы извлечь ценные сведения из заданного адреса Биткоин. Соответствующая служба, доступная по адресу: http://blockchain.info/, дает простую возможность получить полную информацию об адресе Биткоин и цепочке блоков. Фактически, нам даже не потребовалось анализировать информацию, получаемую от службы, потому что она возвращает простые одиночные значения. Получив баланс для заданного адреса, сведения о количестве полученных и потраченных монет и о том, когда осуществлялись платежи, сценарий выводит эту информацию на экран.

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

Сценарий принимает единственный аргумент — адрес Биткоин, информацию о котором требуется получить. Следует отметить, что, если передать сценарию строку, не являющуюся действительным адресом Биткоин, он выведет нули в строках, сообщающих о балансе и полученных и потраченных суммах, а в качестве даты создания будет указан 1969 год. Любые ненулевые суммы указываются в сатоши ( satoshi ) [6] Биткоин = 100 000 000 сатоши. — Примеч. пер. — минимальных единицах обозначения сумм в Биткоин (как, например, пенни, но с намного большим количеством знаков после запятой).

Результаты

Пользоваться сценарием getbtcaddr очень просто, как показано в листинге 7.19, так как он принимает единственный аргумент, адрес Биткоин, информацию о котором требуется получить.

Листинг 7.19.Запуск сценария getbtcaddr

$ getbtcaddr 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Details for address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

····First seen: Sat Jan 3 12:15:05 CST 2009

····Current balance: 6554034549

····Satoshis sent: 0

····Satoshis recv: 6554034549

$ getbtcaddr 1EzwoHtiXB4iFwedPr49iywjZn2nnekhoj

Details for address 1EzwoHtiXB4iFwedPr49iywjZn2nnekhoj

····First seen: Sun Mar 11 11:11:41 CDT 2012

····Current balance: 2000000

····Satoshis sent: 716369585974

····Satoshis recv: 716371585974

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

Сценарий по умолчанию выводит очень большие числа, которые трудно прочитать. Чтобы отобразить данные в единицах, более простых для восприятия (например, в целых Биткоинах), можно использовать сценарий scriptbc (сценарий № 9 в главе 1). Поддержка аргумента точности позволила бы выводить данные в удобочитаемом формате.

№ 62. Определение изменений в веб-страницах

Иногда, просматривая существующие решения, мы с воодушевлением говорим себе: «Оказывается, это совсем несложно». Слежение за изменениями на веб-сайтах — удивительно простой способ собирать такие воодушевляющие образцы. Сценарий в листинге 7.20, changetrack, автоматизирует эту задачу. Данный сценарий имеет одну интересную особенность: обнаружив изменения на сайте, он не просто выводит уведомление в командной строке, а посылает пользователю новую веб-страницу по электронной почте.

Код

Листинг 7.20.Сценарий changetrack

#!/bin/bash

# changetrack — проверяет страницу по указанному URL и, если она

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

#····по указанному адресу электронной почты.

sendmail=$(which sendmail)

sitearchive="/tmp/changetrack"

tmpchanges="$sitearchive/changes.$$" # Временный файл

fromaddr="webscraper@intuitive.com"

dirperm=755······ # чтение+запись+выполнение для владельца каталога

fileperm=644······# чтение+запись для владельца, только чтение для других

trap "$(which rm) −f $tmpchanges" 0 1 15 # Удалить временный файл при выходе.

if [$# −ne 2]; then

··echo "Usage: $(basename $0) url email" >&2

··echo " tip: to have changes displayed on screen, use email addr '-'" >&2

··exit 1

fi

if [! -d $sitearchive]; then

··if! mkdir $sitearchive; then

····echo "$(basename $0) failed: couldn't create $sitearchive." >&2

····exit 1

··fi

··chmod $dirperm $sitearchive

fi

if ["$(echo $1 | cut −c1-5)"!= "http: "]; then

··echo "Please use fully qualified URLs (e.g. start with 'http://')" >&2

··exit 1

fi

fname="$(echo $1 | sed 's/http: \/\///g' | tr '/?&' '…')"

baseurl="$(echo $1 | cut −d/ −f1-3)/"

# Загрузить копию веб-страницы и поместить в файл архива. Обратите

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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