在bash脚本中创建时间戳变量
我正在尝试在shell脚本中创建一个时间戳变量以使日志记录更容易一些。 我想在脚本的开头创建变量,并在每次发出echo $timestamp
时打印出当前时间。 然后我想,这证明会更困难。 以下是我尝试过的一些事情:
timestamp="(date +"%T")"
echo打印出来(date +"%T")
timestamp="$(date +"%T")"
echo打印变量初始化的时间。
我试过的其他东西只是轻微的变化,没有更好的工作。 有谁知道如何完成我想要做的事情?
为了获得当前时间戳,而不是定义固定变量的时间,技巧是使用函数而不是变量:
#!/bin/bash
# Define a timestamp function
timestamp() {
date +"%T"
}
# do something...
timestamp # print timestamp
# do something else...
timestamp # print another timestamp
# continue...
如果您不喜欢%T
说明符给出的格式,则可以合并按date
接受的其他时间转换说明符。 对于GNU date
,您可以在以下官方文档中找到这些说明符的完整列表:https://www.gnu.org/software/coreutils/manual/html_node/Time-conversion-specifiers.html#Time-conversion-specifiers
如果你想获得unix时间戳,那么你需要使用:
timestamp=$(date +%s)
%T
会给你时间; 与%H:%M:%S
相同%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
链接地址: http://www.djcxy.com/p/29117.html