我试图在shell脚本中创建一个时间戳变量,以使日志记录更容易一些。我想在脚本的开头创建变量,并让它在发出echo $timestamp时打印出当前时间。事实证明这比我想象的要困难得多。以下是我尝试过的一些方法:

timestamp="(date +"%T")"回显输出(date +"%T")

timestamp="$(date +"%T")"回显变量初始化的时间。

我尝试过的其他方法都只是细微的变化,效果并不好。有人知道我要怎么做吗?


当前回答

如果你想获取unix时间戳,那么你需要使用:

timestamp=$(date +%s)

T会给你刚好的时间;与%H:%M:%S相同(通过http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/)

其他回答

DATE=`date "+%Y%m%d"`

DATE_WITH_TIME=`date "+%Y%m%d-%H%M%S"` #add %3N as we want millisecond too

你可以使用

timestamp=`date --rfc-3339=seconds`

发布格式为2014-02-01 15:12:35-05:00

反勾号(')字符将导致它们之间的内容被计算,并将结果包含在该行中。约会——帮助有其他选择。

有很多答案,但找不到我想要的:

date +"%s.%3N"

返回类似1606297368.210的内容

我使用的是ubuntu 14.04。

在我的系统中,正确的方法应该是date +%s。

日期+%T的输出类似于12:25:25。

您可以使用以下命令来完成此操作。

对于带秒的时间戳:checkDate=$(日期“+%s”)

格式化日期:checkDate = $(日期”+ Y % - % m - H % d %: % m: % S”)