在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

上一篇: Create timestamp variable in bash script

下一篇: String replace file content with patterns