要在下一个整分钟执行脚本,我想告诉sleep
命令休眠直到下一个整分钟。我怎样才能做到这一点?
答案1
询问以秒为单位的日期:并用 60(模: )date +%s
计算除法的提醒。%
如果您计算 60 减去模数,您将得到到下一个整分钟的剩余秒数。您可以将其更改为等到下一个完整小时(将 60 更改为 3600)。
sleep $((60 - $(date +%s) % 60)) &&
<yourscript>
要睡到下一整分钟,您甚至可以将其缩短(没有模数):
sleep $((60 - $(date +%S) )) &&
<yourscript>
另请注意此问题和答案:睡眠直到下一次出现特定时间。
答案2
sleep $(( 60 - 10#$(date +%S) ))
睡眠直到下一整分钟。不要忘记10#
前缀!否则,您的代码会将“08”和“09”解释为对八进制数的无效引用。
或者,您可以通过在“%”后面添加“-”来防止 date 命令用“0”填充秒
sleep $(( 60 - $(date +%-S) ))