Bash日期/时间算术

时间:2009-06-09 01:37:46

标签: bash date time sleep suspend

我有一个小的Bash脚本,在给定的分钟数后暂停计算机。但是,我想扩展一下,告诉我暂停的时间是什么,所以我可以大致了解我已经离开多长时间了。

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

脚本的唯一参数是从现在起计算机应暂停多少分钟。我要添加到此脚本的所有内容基本上都是echo,例如“睡到HH:nn:ss!”。有什么想法吗?

3 个答案:

答案 0 :(得分:9)

了解如何。

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

答案 1 :(得分:1)

在BSD派生系统上,您可以使用

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

即。以秒为单位获取当前日期,添加分钟数,然后将其反馈回日期 是的,它稍微不那么优雅。

答案 2 :(得分:1)

在linux上

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