Bash дата/время арифметика

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

#!/bin/sh
let SECS=*60
echo "Sleeping for"  "minutes, which is" $SECS "seconds."
sleep $SECS &&
pm-suspend

единственным аргументом скрипта будет то, сколько минут спустя компьютер должен быть приостановлен. Все, что я хочу добавить в этот скрипт, это в основном echo говоря, например, " спать до HH:nn: ss!". Любой идеи?

3 ответов


выяснили, как.

echo "The computer will be suspended at" $(date --date "now  minutes")

в системах, производных от BSD, вы бы использовали

date -r $(( $(date "+%s") +  * 60 ))

т. е. получите текущую дату в секундах, добавьте количество минут и верните ее на дату.
Да, немного менее элегантно.


в linux

SECS=`date "+$s"`
SECS=$(( SECS +  * 60 ))
date --date $SECS