我有一个带有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
在重击中:sleep 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
您需要将循环放入包装器中: