linux – 用于在bash脚本中循环和休眠

我有一个带有for循环的bash脚本,我想要睡X秒.

#!/bin/sh
for i in `seq 8`; 
    do ssh w$i 'uptime;
    ps -elf|grep httpd|wc -l;
    free -m;
    mpstat'; 
done &
pid=$!
kill -9 $pid

在Bash:睡2睡2秒.我想在2秒后自动杀死pid.

最佳答案 喜欢在评论中提出建议

#!/bin/sh
for i in `seq 8`; 
    do ssh w$i 'uptime;
    ps -elf|grep httpd|wc -l;
    free -m;
    mpstat'; 
done &
pid=$!
sleep 2
kill -9 $pid

在这个版本中,一个ssh进程可能永远存在.所以也许最好分别杀死每个ssh命令:

#!/bin/sh
for i in `seq 8`; 
    do ssh w$i 'uptime;
    ps -elf|grep httpd|wc -l;
    free -m;
    mpstat' &;
    pid=$!
    sleep 0.3
    kill $pid
done
点赞