gpt4 book ai didi

linux - 多线程ping脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:51 27 4
gpt4 key购买 nike

我有这个

#! /bin/bash

cd ~
hostname=`hostname`
cat /opt/ip.txt | while read line;
do
# do something with $line here
RES=`ping -c 2 -q $line | grep "packet loss"`

echo "---" >> /opt/os-$hostname.txt
echo "---"
echo "$line $RES" >> /opt/os-$hostname.txt
echo "$line $RES"
done

如何使脚本成为多线程的?我想加快性能。

最佳答案

您可以使用 <(...)用于启动子进程的符号,然后是 cat所有的输出在一起:

myping() {
ping -c 2 -q "$1" | grep "packet loss"
}

cat <(myping hostname1) <(myping hostname2) ...

要为此使用循环,您需要先构建命令:

cat /opt/ip.txt | {
command='cat'
while read line
do
command="$command "'<'"(myping $line)"
done
eval "$command"
}

如果你真的想要定界 ---你原来的,我建议添加一个echo "---"myping .

如果您还想将输出附加到文件中,请使用 tee :

  eval "$command" | tee -a /opt/os-$hostname.txt

关于linux - 多线程ping脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21731904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com