0
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 是毫秒)时,我希望它显示World1,30。然后,如果它是 world233.runescape.com 例如它会显示World233,55

有没有办法做到这一点?因为有时有一个 World122 但没有 World123,所以除非我有标记每个 ping 的东西,否则如果没有返回 123 的值,将 World124 放在 World123 所在的位置会给出不正确的结果,所以我需要为它们命名以获得占位符。

4

1 回答 1

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

我已经将重定向移到外面,假设您不想累积结果,只需获取最新的集合。

于 2013-08-30T22:34:53.637 回答