shell 如何在每个xargs命令之间休眠1秒?

mklgxw1f  于 6个月前  发布在  Shell
关注(0)|答案(3)|浏览(87)

例如,如果我执行

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

字符串
我想让shell在每个echo之间睡眠1秒。
如何更改shell命令?

b5buobof

b5buobof1#

可以使用以下语法:

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

字符串
但是要小心空格和空格。在括号之间的每个命令之后,都需要空格(即使在最后一个命令之后)。

axkjgtzd

axkjgtzd2#

echo替换为名为sleepecho的shell脚本,

#!/bin/sh
 sleep 1
 echo $*

字符串

wi3ka0sx

wi3ka0sx3#

如果您的awk支持:

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

字符串
或跳过awkxargs

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

相关问题