例如,如果我执行
ps aux | awk '{print $1}' | xargs -I {} echo {}
我想让shell在每个echo
之间hibernate1秒钟。
我怎样才能改变我的shell命令?
您可以使用以下语法:
ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }'
虽然要小心空格和分号。 括号之间的每个命令后,需要分号(即使在最后一个之后)。
用一些名为sleepecho
shell脚本替换echo
#!/bin/sh sleep 1 echo $*
如果你的awk
支持它:
ps aux | awk '{ system("sleep 1"); print $1 }' | xargs -I {} echo {}q
或者完全忽略awk
和xargs
ps aux | while read -r user rest; echo $user sleep 1; done