たとえば、実行すると
ps aux | awk '{print $1}' | xargs -I {} echo {}
それぞれの間にシェルを1秒間スリープさせたいecho
。
シェルコマンドを変更するにはどうすればよいですか?
次の構文を使用できます。
ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }'
ただし、スペースとセミコロンには注意してください。括弧内のすべてのコマンドの後には、セミコロンが必要です (最後のコマンドの後でも)。
含むecho
という名前のシェルスクリプトに置き換えますsleepecho
#!/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