Search code examples
linuxbashshellxargs

How to sleep for 1 second between each xargs command?


For example, if I execute

ps aux | awk '{print $1}' | xargs -I {} echo {}

I want to let the shell sleep for 1 second between each echo.

How can I change my shell command?


Solution

  • 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).