How to sleep for 1 second between each xargs command? How to sleep for 1 second between each xargs command? bash bash

How to sleep for 1 second between each xargs command?


You can use the following syntax:

ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }'

Be careful with spaces and semicolons though. After every command in between brackets, semicolon is required (even after the last one).


Replace echo by some shell script named sleepecho containing

 #!/bin/sh sleep 1 echo $*


If your awk supports it:

ps aux | awk '{ system("sleep 1"); print $1 }' | xargs -I {} echo {}q

or skip awk and xargs altogether

ps aux | while read -r user rest;    echo $user    sleep 1;done