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

Здесь есть возможность читать онлайн «Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Питер, Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

··if [$endyear −eq $thisyear]; then

····totaldays=$(($($date −d "$endmon/$endday/$endyear" +%j) −$($date +%j)))

··else

····#### Вычислить количество дней по фрагментам,

····####·· начиная с количества дней до конца текущего года.

····#### ДНЕЙ ОСТАЛОСЬ В НАЧАЛЬНОМ ГОДУ

····# Собрать строку формата с начальной датой.

····thisdatefmt="$thismon/$thisday/$thisyear"

····calculate="$($date −d "12/31/$thisyear" +%j) −$($date −d $thisdatefmt +%j)"

····daysleftinyear=$(($calculate))

····#### ДНЕЙ В ПРОМЕЖУТОЧНЫХ ГОДАХ

····daysbetweenyears=0

····tempyear=$(($thisyear + 1))

····while [$tempyear −lt $endyear]; do

······daysbetweenyears=$(($daysbetweenyears + \

········$($date −d "12/31/$tempyear" +%j)))

······tempyear=$(($tempyear + 1))

····done

····#### ДНЕЙ В КОНЕЧНОМ ГОДУ

····dayofyear=$($date −date $endmon/$endday/$endyear +%j) # Это просто!

····#### ТЕПЕРЬ СЛОЖИТЬ ВСЕ ВМЕСТЕ

····totaldays=$(($daysleftinyear + $daysbetweenyears + $dayofyear))

··fi

··echo "There are $totaldays days until the date $endmon/$endday/$endyear."

··exit 0

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

Как уже говорилось, этот сценарий во многом повторяет сценарий daysago. Возможно, их стоило бы объединить в один и проверять дату, указанную пользователем, — в прошлом она находится или в будущем. Бо́льшая часть вычислений в этом сценарии — просто инверсная версия вычислений в сценарии daysago, в том смысле, что они позволяют заглянуть вперед, в будущее, а не назад, в прошлое.

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

Если кто-то попытается обхитрить сценарий, указав сегодняшнюю дату, эта проверка определит такую попытку и выведет ответ «zero days» (ноль дней).

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

Сколько дней осталось до 1 января 2020? Листинг 15.6 отвечает на этот вопрос.

Листинг 15.6.Запуск сценария daysuntil для первого дня 2020 года

$ daysuntil 1 1 2020

There are 1321 days until the date 1/1/2020.

Сколько дней осталось до Рождества 2025?

$ daysuntil 12 25 2025

There are 3506 days until the date 12/25/2025.

Готовитесь отметить трехсотлетие Соединенных Штатов? Посмотрите, сколько дней осталось до этой даты:

$ daysuntil 7 4 2076

There are 21960 days until the date 7/4/2076.

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

$ daysuntil 1 1 3000

There are 359259 days until the date 1/1/3000.

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

В сценарии № 99 в начале главы мы научились определять, на какой день недели выпадает указанная дата. Было бы очень полезно объединить эту возможность с возможностями сценариев daysago и daysuntil, чтобы сразу получить всю информацию о выбранной дате.

Приложение A. Установка Bash в Windows 10

Во время подготовки этой книги к печати компания Microsoft выпустила версию командной оболочки bash для Windows. Разве могли мы издать книгу по программированию сценариев командной оболочки, не сообщив вам такую новость?

Неприятность, однако, в том, что этой командной оболочке требуется не просто Windows 10, а Windows 10 Anniversary Update (сборка 14393, выпущенная 2 августа 2016). Кроме того, вы должны иметь x64-совместимый процессор и быть членом программы Windows Insider Program. Только в этом случае вы сможете приступить к установке bash!

Сначала присоединитесь к программе Insider Program по адресу: https://insider.windows.com/. Это бесплатно и даст вам удобную возможность обновить свою версию Windows до Anniversary. По программе Insider Program вы получите помощника обновления Windows 10 Upgrade Assistant, который предложит установить обновления до необходимой версии. Это может занять какое-то время, и вам придется перезагрузить систему.

Переключение в режим для разработчика

После регистрации в программе Windows Insider Program и установки версии Windows 10 Anniversary необходимо переключиться в режим разработчика. Для этого откройте диалог Settings(Параметры) и введите в строке поиска «Developer mode» («Режим разработчика»). В результате должен появиться раздел Use developer features(Использование функций разработчика). В этом разделе включите параметр Developer mode(Режим разработчика), как показано на рис. A.1.

Windows может предупредить, что в режиме разработчика ваша система становится более уязвимой. Это предупреждение не беспочвенно: переход в данный режим действительно сопряжен с большим риском, потому что вы можете по неосторожности установить программы с неодобренных сайтов. Однако если вы готовы действовать осмотрительно, мы предлагаем вам продолжить, чтобы хотя бы опробовать систему bash. После того как вы согласитесь с предупреждением, Windows загрузит и установит на вашем компьютере дополнительное программное обеспечение. Это займет несколько минут.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Представляем Вашему вниманию похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x