如何使bash脚本有一定的延迟运行(即每次迭代等待1秒)?


28

我有这个bash脚本;

for (( i = 1 ; i <= 160 ; i++ )); do
  qsub myccomputations"${i}".pbs
done

基本上,我希望每次迭代之间有1秒的延迟。原因是在每次迭代时,它将程序文件发送mycomputation"${i}$.pbs到核心节点进行求解。动机是这种情况下的求解涉及伪随机数的使用,而我使用的RNG(R)使用CPU时间作为种子。

那么你如何要求bash

for (( i = 1 ; i <= 160 ; i++ )); do
  wait 1 sec    
  qsub myccomputations"${i}".pbs
done

Answers:


54

只需sleep 1在Bash中使用即可。

for (( i = 1 ; i <= 160 ; i++ )); do
  sleep 1
  qsub myccomputations"${i}".pbs
done

您可以使用浮点数,如果你想睡觉时间小于1秒
shellholic

0

如果您想实现主题所建议的功能,则应使用“ at”。

看到

      man at

想要查询更多的信息。


1
谢谢你,奥莉。的确,我将重写标题,以便与将来的查询相对应。
user2413 2011年

at不会在特定持续时间内暂停循环,而是将程序/脚本设置为在特定时间执行。
索伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.