I have this bash script;

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

Basically, I would prefer if there was a 1 second delay between each iteration. The reason is that at each iterations, it sends the program file mycomputation"${i}$.pbs to a core node for solving. The motivation is that solving in this instance involves the use of pseudo random numbers and the RNG I use (R's) uses CPU time as seed.

So how to you ask bash to

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

Simply use sleep 1 in Bash.

for (( i = 1 ; i <= 160 ; i++ )); do
  sleep 1
  qsub myccomputations"${i}".pbs
  • you can use floating point number if you want to sleep less than 1 second – shellholic Feb 17 '11 at 14:49

If you want to achieve what your topic suggests, you should use 'at'.


      man at

for more information.

  • 1
    thank you Olli. Indeed, i will rewrite the title, so it corresponds to the question, for future queries. – user2413 Feb 17 '11 at 15:31
  • at will not suspend a loop for a specific duration, but set a program / script for execution at a specific time. – Soren A Feb 15 '18 at 12:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.