如何睡每个xargs的命令在1秒?(How to sleep for 1 second betwee

2019-08-17 05:51发布

例如,如果我执行

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

我想让壳睡眠对每个之间1秒echo

我怎样才能改变我的shell命令?

Answer 1:

您可以使用下面的语法:

ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }'

小心空格和分号虽然。 括号中的每一个命令后,分号(后甚至最后一个)必需的。



Answer 2:

更换echo名为一些shell脚本sleepecho

 #!/bin/sh
 sleep 1
 echo $*


Answer 3:

如果您awk支持它:

ps aux | awk '{ system("sleep 1"); print $1 }' | xargs -I {} echo {}q

或跳过awkxargs

ps aux | while read -r user rest;
    echo $user
    sleep 1;
done


文章来源: How to sleep for 1 second between each xargs command?