我有这个脚本:
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