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?
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?
You can use following syntax:
ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }'
Be careful with spaces and semicolons though. After every command between brackets, semicolon is required (even after 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