将bash命令指定为变量,然后在运行时

时间:2017-05-18 17:06:21

标签: arrays bash function variables echo

如何将命令date指定为变量,以便在调用所述变量时执行它?

DATE=`date +%H:%M:%S`
echo "$DATE"
sleep 5
echo "$DATE" # Date displays the original time, not the current one

-

编辑1 : 根据 anubhava 的建议:

freshdate[0]=`date +%H:%M:%S`

但是,这不会导致:

echo "${freshdate[0]}"  # 19:25:50
sleep 5
echo "${freshdate[0]}"  # 19:25:50

2 个答案:

答案 0 :(得分:2)

最简单的方法是将此命令包装在这样的shell函数中:

dt() { date '+%H:%M:%S'; }

然后在任何想要访问它的地方使用它,如:

echo "Time now is: $(dt)"
Time now is: 13:34:30

答案 1 :(得分:-1)

你可以做到

DATE=(date +%H:%M:%S)
${DATE[@]}
sleep 5
${DATE[@]}

并会显示不同的时间。