Вычтите две даты, используя Shell Scripting

Как я могу вычесть две даты в формате epoch, используя Shell Scripting. Я хочу выход в формате «Месяцы, дни, часы». Также он должен работать даже более 12 месяцев (так как я натолкнулся на несколько, которые были сброшены до 0 месяцев, если их было больше 12)

2 Solutions collect form web for “Вычтите две даты, используя Shell Scripting”

Попробуйте что-то вроде этого:

#!/bin/bash d1=`date -d 20140929 +%s` d2=`date -d 20001115 +%s` date --date=@$(($d1 - $d2)) +'%m months, %d days, %H hours' 

Вывод:

 11 months, 15 days, 02 hours 
 #!/bin/bash d=(60sec 60min 24hours 30days 12month 1000year) i=0 while [ $1 -ge ${d[i]%%[az]*} ] do set -- $(($1/${d[i]%%[az]*})) $(($1%${d[i]%%[az]*})) ${d[i]##*[0-9]} ${*:2} ((i++)) done echo $1 ${d[i]##*[0-9]} ${*:2} 
Interesting Posts

«Слишком много аргументов в [(тестовом) заявлении»

Как выбрать файлы в папке, в которой заголовок содержит определенный текст?

Проверка порядка элементов в переменной среды оболочки

Bash: Расширение истории внутри одинарных кавычек после двойной кавычки внутри одной строки

Загрузочный загрузчик Linux из Mac OSX

Как исправить мою fstab

Создайте tar-архив, разбитый на блоки максимального размера

Как заставить RPi2 запустить Kali для привязки к iPhone 5S?

Что означает `*` использование hexdump -C?

Добавлен файл anaconda2 lib в LD_LIBRARY_PATH, в результате появляется предупреждение «без информации о версии»

Debian 8 Jessie virtualbox vdi disk-image mount

какая оболочка будет использовать sudo для выполнения сценария оболочки без строки shebang

разрешения безопасности debian / etc

Поиск в определенном столбце для шаблона и вывода всей строки

Узнайте, в какой каталог записывается процесс?

Linux и Unix - лучшая ОС в мире.