"n спустя недели после того, как дата" легка с датой GNU (1):
$ date -d 'now + 3 weeks'
Tue Dec 6 23:58:04 EST 2011
$ date -d 'Aug 4 + 3 weeks'
Thu Aug 25 00:00:00 EST 2011
$ date -d 'Jan 1 1982 + 11 weeks'
Fri Mar 19 00:00:00 EST 1982
Я не знаю о простом способе вычислить различие между двумя датами, но можно перенести немного логики вокруг даты (1) с функцией оболочки.
datediff() {
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
echo $(( (d1 - d2) / 86400 )) days
}
$ datediff '1 Nov' '1 Aug'
91 days
Подкачка d1
и d2
если Вы хотите вычисление даты другой путь или становитесь немного более необычными, чтобы заставить его не иметь значение. Кроме того, в случае, если существует не-DST к переходу DST в интервале, один изо дней будет только 23 часа длиной; можно компенсировать путем добавления ½ дней к сумме.
echo $(( (((d1-d2) > 0 ? (d1-d2) : (d2-d1)) + 43200) / 86400 )) days
Флаг начальной загрузки с древних времен, где Вы указали бы на запись раздела MBR как загрузочную, таким образом, Вы могли указать, где загрузчик находился.
На современном OS'es это широко не использовано, поскольку MBR состоит из минимального перегружателя, который загружается или в его собственный раздел или переходит к другой области на диск, где код загрузчика сохранен. (MBR может содержать или исполняемый код или таблицу раздела начальной загрузки среди прочего. См. также эту ссылку на статью о MBR).
Как пример, GRUB записан в MBR и загружает любой раздел, который Вы выбираете.
См. также эту (довольно маленькую) страницу Wikipedia о флаге начальной загрузки: en.wikipedia.org/wiki/Boot_flag
Каждая операционная система, которая использует некоторые полученные из ПК аппаратные средства, должна быть загружена.
Это запускается с древнего, независимого от операционной системы поиска начальной загрузки, который инициируется BIOS (базовая система ввода-вывода) ПК или сервера.
Та часть BIOS кода пытается загрузить MBR из первого подходящего устройства загрузки. Поисковый порядок на устройство загрузки настраивается в BIOS Setup: какой (диск) устройство сначала, который затем и так далее.
MBR "прежней версии" пытается найти первый основной раздел, который отмечен как загрузочный и проверяет, существует ли короткий волшебный шестнадцатеричный код того раздела.
Если шестнадцатеричный код найден, остальное (программа начальной загрузки) выполняется BIOS. Здесь начинается, начальная загрузка операционной системы - может это быть DOS, Windows, Linux...
No Operating System
если надлежащее магическое число не найдено), и затем MBR берет его оттуда. MBR прежней версии ищет активный основной раздел, но другой MBRs (личинка, lilo, и т.д.) может принять решение действовать по-другому.
– Ignacio Vazquez-Abrams
07.11.2011, 00:06
Сначала я думал, что это ошибка в Grub2. Некоторые BIOS, кажется, проверяют, если хотя бы один раздел помечен как загрузочный. После долгого исследования я заметил, что, потому что не было никакого способа загружаться от HDD или USB-Stick вообще. Это означает, что даже если волшебные байты в конце MBR являются правильным, а загрузочный код в MBR действителен, BIOS будет игнорировать это устройство и пропустить его в загрузочной последовательности до тех пор, пока был установлен загрузочный флаг для по меньшей мере одного раздела. Проверено на Fujitsu P772 и HP Probook 6570B.