for (( x=1; $x<=300; x++ )); do ( ping world$x.runescape.com -n 20 | grep Minimum | grep -oP "(?<=Minimum = )[0-9]+(?=ms)" >> RuneScape_Ping_Output.txt ); done
这样做是ping world.runescape.com 20次,并寻找最小的ping并将其存储为其输出。它将按照指定的方式为world1.runescape.com一直到world300.runescape.com。输出只是一个最小ping值的数字。
我遇到的问题是我想要存储世界号码和输出。因此,当它正在ping world1.runescape.com而不是仅存储数字30
(30是ms)时,我希望它显示World1,30
。然后,如果它以world233.runescape.com为例,它将显示World233,55
有没有办法做到这一点?因为有时候会有一个World122而没有World123,所以除非我有标记每个ping的内容,否则如果没有值返回123,World124会将World124放在哪里会产生不正确的结果,所以我需要将它们命名为占位符。 / p>
答案 0 :(得分:1)
你想在每一位输出之前回显。
for (( x=1; $x<=300; x++ )); do
echo -n "world$x,"
ping world$x.runescape.com -n 20 | grep Minimum | grep -oP "(?<=Minimum = )[0-9]+(?=ms)"
done > RuneScape_Ping_Output.txt
我已经将重定向移到了外面,假设您不想累积结果,只需获取最新的设置。