如何获取存储在 bash 变量中的日期和时间以便在回显时进行更新?

如何获取存储在 bash 变量中的日期和时间以便在回显时进行更新?

我有这个脚本:

date_time=`date "+%Y%m%d%H%M%S"`
script_name=`basename "$0"`

echo $date_time, $script_name
sleep 2
echo $date_time, $script_name
exit 1

它向我显示了这个(同一时间)。

20200103114357, clone.sh
20200103114357, clone.sh

我需要当我将变量作为命令调用时,日期和时间。下次之间有 2 秒,但时间相同。我该怎么做?谢谢。

答案1

您的代码将命令的结果存储在变量中,因此它永远不会改变。为了将命令本身存储在变量中,您需要对使用的引号进行一些细微的更改,如下所示:

date_time="date +%Y%m%d%H%M%S"
script_name=`basename "$0"`

echo `$date_time`, $script_name
sleep 2
echo `$date_time`, $script_name
exit 1

答案2

休眠后再次设置日期时间:

script_name=`basename "$0"`

date_time=`date "+%Y%m%d%H%M%S"`
echo $date_time, $script_name
sleep 2

date_time=`date "+%Y%m%d%H%M%S"`
echo $date_time, $script_name
exit 1

答案3

$("date +%Y%m%d%H%M%S")如果您希望每次启动命令时都重新评估,那么您可以在启动的命令中直接连接表达式。

例子:

cp myfilename myfilename-$(date +%Y%m%d%H%M%S)

文件名输出:

myfilename-20220928103450

相关内容