我有一个简单的代码来确保脚本在 Ubuntu 上至少需要 x 秒(这里是 500 秒)
t1=$(date +%s)
# script is here
t2=$(date +%s)
let "t = 500 - $t2 + $t1"
(( t = t>0 ? t : 1 ))
sleep $t
代码完美运行,但我相信我的编码效率不高,这三行
t2=$(date +%s)
let "t = 500 - $t2 + $t1"
(( t = t>0 ? t : 1 ))
应该用一行来表示。我的问题是如何改进代码。
您的脚本是什么,不可移植(因为您使用
let
and(( .. ))
),令人困惑(因为您同时let
使用and(( .. ))
),缺乏文档(没有注释,并且变量名称是非描述性的),并且勉强不安全(因为您没有引用 的扩展名$t
)。如果你想重写,这是我的:
这是我使用
bash
特殊参数的方法SECONDS
:通常
SECONDS
返回脚本启动后的时间(以秒为单位),但可以分配任何值来(重新)设置计时器。