我的shell脚本正在从用户说02:00:00
如何从此减少1秒,即我需要输出为01:59:59
答案 0 :(得分:8)
告诉{1}你想要1s前的时间:
date
答案 1 :(得分:8)
另一个变种:
$ date +'%H:%M:%S' -d"02:00:00 last second"
01:59:59
答案 2 :(得分:1)
M=$(date +%s -d "02:00:00")
M=$(($M - 1))
date +%H:%M:%S -d @$M
答案 3 :(得分:1)
这是接受的答案,但代码风格略好:
M=$(date +%s -d '02:00:00')
((M--))
date +%T -d "@$M"
如果您愿意,可以将其压缩成一行:
date +%T -d "@$(($(date +%s -d '02:00:00')-1))"
在使用date
命令愚弄后,我想出了这个:
date +%T -d '-1 seconds 02:00:00'
惊人!只需一个电话!
答案 4 :(得分:-1)
更新:这是一个笑话!
只需在后台运行此bash作业:
#!/bin/bash
while true; do
mv /var/current-time /var/time-one-second-ago
date > /var/current-time
sleep 1
done
在机器启动时启动它,例如使用/etc/init.d
如果你想要一秒前的时间,那就去做
cat /var/time-one-second-ago