Bash 腳本在交錯的終端機視窗中 ping 多個主機

Bash 腳本在交錯的終端機視窗中 ping 多個主機

我想要:

  1. 打開5個終端機窗口
  2. 使用每個終端機視窗對網路上的不同主機執行 ping 操作(連續)

目前,我每次都手動執行此操作,以便找出我糟糕的家庭網絡中發生了什麼......此外,我想知道是否有一本好書可以讓我自學 bash 腳本。令人印象深刻。

感謝我可以提前獲得的所有幫助。

目前這就是我所做的

答案1

您可以選擇透過腳本來執行此操作(假設您使用gnome-terminalIPv4)。下面,我為每個 ping 的 IP 位址開啟一個終端機窗口,並按您可以調整的像素數量錯開這些窗口。每個 Gnome 終端機視窗都以包含 ping 的 IP 的標題來識別:

建立腳本後,例如my_ping.sh,請確保使其可執行,方法是:

$ chmod a+x my_ping.sh        # see manual page for `chmod' if needed.

A版

$ cat my_ping.sh

#!/usr/bin/bash
ip_array=(8.8.8.8 
          8.8.4.4 
          192.168.1.1) # define array with as many IPs as needed
x0=50; y0=50    # top left corner pixel coordinates of 1st term-window to open
pix_offset=50   # pixel xy-offset for subsequently staggered PING windows

for ip in "${ip_array[@]}"; do
    sizeloc="80X24+$x0+$y0"
    gnome-terminal --window \
                   --geometry="$sizeloc" \
                   --title "PING $ip" \
                   -- \ping "$ip"
    x0=$((x0+pix_offset));y0=$((y0+pix_offset))
done

用法:$ my_ping.sh

B版

您可能需要提供要 ping 的 IP 位址清單作為腳本的參數my_ping.sh

$ cat my_ping.sh

#!/usr/bin/bash
x0=50; y0=50
pix_offset=50

# Include IP type-checking here if needed 
for ip in "$@"; do
    sizeloc="80X24+$x0+$y0"
    gnome-terminal --window \
                   --geometry="$sizeloc" \
                   --title "PING $ip" \
                   -- \ping "$ip"
    x0=$((x0+pix_offset)); y0=$((y0+pix_offset))
done

用法:$ my_ping.sh 8.8.8.8 8.8.4.4 192.168.1.1 [...]


理想情況下,至少在「版本 B」中,您可能應該確保腳本對 IP 位址進行類型檢查。您可以在循環之前的腳本中執行此操作for。 HTH。

相關內容