我正在用 bash 编写脚本来计算执行命令所用的时间,请考虑:
STARTTIME=$(date +%s)
#command block that takes time to complete...
#........
ENDTIME=$(date +%s)
echo "It takes $($ENDTIME - $STARTTIME) seconds to complete this task..."
我想我的逻辑是正确的,但我最终得到以下打印输出:
“完成这项任务需要几秒钟的时间……”
我的字符串评估有什么问题吗?
我相信 bash 变量是无类型的,如果 bash 中有一个“字符串到整数”的方法,我会很高兴。
原文由 Michael Mao 发布,翻译遵循 CC BY-SA 4.0 许可协议
$(())
或$[]
将用于计算算术运算的结果。您正在使用$()
它只是将字符串作为命令进行评估。这是一个微妙的区别。希望这可以帮助。正如 tink 在对此答案的评论中指出的那样,
$[]
已被弃用,而$(())
应该受到青睐。