如何在 shell 脚本(对于 ksh)中获取纪元时间? 我有兴趣获取一天开始的纪元时间(例如现在是 2011 年 7 月 28 日 ~ 14:25:00 EST,我需要午夜时间)。
如果您有 GNU 日期,
epoch=$( date -d 00:00 +%s )
否则,如果你有 tclsh,
epoch=$( echo 'puts [clock scan 00:00]' | tclsh )
否则,
epoch=$( perl -MTime::Local -le 'print timelocal(0,0,0,(localtime)[3..8])' )
ksh 的
printf '%(fmt)T'
支持时间计算。例如:
$ echo ${.sh.version}
Version AJM 93u+ 2012-08-01
$ printf '%T\n' now
Sat Aug 5 20:15:58 CST 2023
$ printf '%T\n' '2 days ago'
Thu Aug 3 20:16:06 CST 2023
$ printf '%T\n' 'midnight today'
Sat Aug 5 00:00:00 CST 2023