【问题标题】:Specifying bash command as variable and then executing during runtime [duplicate]将 bash 命令指定为变量,然后在运行时执行 [重复]
【发布时间】:2017-10-18 15:14:30
【问题描述】:

如何将命令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

【问题讨论】:

  • 使用函数或数组来存储命令行

标签: arrays bash function variables echo


【解决方案1】:

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

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

然后在任何你想访问它的地方使用它:

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

【讨论】:

  • 很好的解释。感谢您的回答!
【解决方案2】:

你可以的

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

并且会显示不同的时间。

【讨论】:

  • 是的,它打印新时间,但我想echo 新时间(即,将其整合到更长的字符串中)。类似于echo "Foo bar baz $DATE[@]" 的东西。我该怎么做?
猜你喜欢
  • 2017-07-10
  • 1970-01-01
  • 2014-08-27
  • 2023-04-07
  • 2020-07-01
  • 2018-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多