Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - [123]
>··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, в том смысле, что они позволяют заглянуть вперед, в будущее, а не назад, в прошлое.
Однако этот сценарий чуть надежнее, потому что перед фактическими вычислениями проверяет намного больше ошибочных ситуаций. Возьмите, например, нашу любимую проверку в строке
.Если кто-то попытается обхитрить сценарий, указав сегодняшнюю дату, эта проверка определит такую попытку и выведет ответ «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 загрузит и установит на вашем компьютере дополнительное программное обеспечение. Это займет несколько минут.
Рис. A.1. Включение режима разработчика в Windows 10
Далее вам нужно перейти на страницу с обычными настройками Windows, чтобы включить Windows Subsystem for Linux (Подсистема Linux в Windows). (Это круто, что компания Microsoft встроила даже подсистему Linux!) Выполните поиск по строке «Turn Windows Features On» (Включение компонентов Windows). Откроется окно с длинным списком служб и компонентов с флажком в каждом пункте (см. рис. A.2).
Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.
Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.
Реестр Windows является важной частью операционной системы, во многом определяющей ее работу. Изучив приведенный в этой книге материал, вы научитесь редактировать реестр Windows Vista по своему усмотрению, а также освоите многочисленные приемы оптимизации содержащихся в нем настроек операционной системы.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Iptables Tutorial 1.1.19Автор: (C) Oskar AndreassonCopyright (C) 2001-2002 by Oskar AndreassonПеревод: (C) Андрей КиселевПоследнюю версию документа можно получить по адресу: http://iptables-tutorial.frozentux.netfb2-документ отформатирован с использованием большого количества тегов и . Чтобы в «читалке» (в частности, Haali Reader) текст выглядел «красиво», настройте свойства соотвествующих стилей (emphasis и strong), изменив, например, их цвета или начертания. (прим. автора fb2-документа)
Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)