#!/bin/sh for ip in `cat node.list ` do ping -c 3 -q $ip >> ping.log; done 这个shell脚本怎么多线程执行
时间: 2024-03-02 08:48:59 浏览: 79
你可以使用`xargs`命令来实现多线程执行此脚本。具体操作下:
```
cat node.list | xargs -I {} -P 4 sh -c 'ping -c 3 -q {} >> ping.log'
```
其中`-P 4`指定了同时执行4个线程,`-I {}`指定了替换字符串,`sh -c 'ping -c 3 -q {} >> ping.log'`部分是要执行的命令。这个命令会从`node.list`文件中读取IP列表,然后使用4个线程同时执行`ping`命令,将结果输出到`ping.log`文件中。你可以根据需要,调整`-P`参数的值来控制线程数。
相关问题
#!/bin/sh for ip in `cat node.list ` do ping -c 3 -q $ip; done 将结果保存到ping.log
可以使用重定向符号将执行结果保存到文件中,命令如下:
```
#!/bin/sh
for ip in `cat node.list`
do
ping -c 3 -q $ip >> ping.log
done
```
这个脚本会读取node.list文件中的每个IP地址,执行ping操作,并将执行结果保存到ping.log文件中。其中,>>符号表示追加方式将结果写入文件。
如果您需要覆盖原有的文件,可以使用>符号,命令如下:
```
#!/bin/sh
for ip in `cat node.list`
do
ping -c 3 -q $ip > ping.log
done
```
这个脚本会将每个IP地址的ping结果覆盖写入ping.log文件中。
阅读全文