例如,如果我执行
ps aux | awk '{print $1}' | xargs -I {} echo {}
我想让shell在每个echo
之间休眠1秒钟。
如何更改shell命令?
答案 0 :(得分:33)
您可以使用以下语法:
ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }'
但请注意空格和分号。在括号之间的每个命令之后,需要使用分号(即使在最后一个之后)。
答案 1 :(得分:0)
将echo
替换为包含
sleepecho
的shell脚本
#!/bin/sh
sleep 1
echo $*
答案 2 :(得分:0)
如果您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