想要使用参数来缩小 bash 命令。
我经常检查互联网提供商和其他提供商的信息免费和公共 DNS 服务器下面的代码运行在多路复用器,但想知道如何缩小它,使其变得更好?有任何想法吗?
tmux neww ;
tmux split-window -v 'ping 8.8.8.8' \;
split-window -v 'ping 1.1.1.1' \;
\select-pane -t 1 \;
split-window -h 'ping 8.8.4.4' \;
\select-pane -t 3 \;
split-window -h 'ping 1.0.0.1' \;
\select-pane -t 0 \;
split-window -h 'ping 76.76.2.5' \;
split-window -v 'ping 76.76.19.19' \;
\select-pane -t 0 \;
split-window -v 'ping 208.67.220.220' \;
\select-pane -t 0 \;
split-window -v 'ping 208.67.222.222'
所需的解决方案
$ pp
如果未定义参数,则tmux neww \; split-window …
使用预定义的 IP 地址执行。
$ pp 1.1.1.1 1.0.0.1
使用单个或多个参数,tmux neww \; split-window …
使用定义的 IP 地址(最好与预定义的 IP 地址一起)运行。
试图定义~/.bash_aliases
,
这是实际的代码
# check multiple round-trip time (RTT)
dnscheck() { # compare multiple DNS servers using `ping`
tmux split-window -v 'ping 8.8.8.8' \; split-window -v 'ping 1.1.1.1' \; \select-pane -t 1 \; split-window -h 'ping 8.8.4.4' \; \select-pane -t 3 \; split-window -h 'ping 1.0.0.1' \; \select-pane -t 0 \; split-window -h 'ping 76.76.2.5' \; split-window -v 'ping 76.76.19.19' \; \select-pane -t 0 \; split-window -v 'ping 208.67.220.220' \; \select-pane -t 0 \; split-window -v 'ping 208.67.222.222' ; exit
}
mping() { # multiple pings
[[ -z ${1} ]] && tmux neww dnscheck; # run dnscheck() if no argument
tmux neww ping ${1} \; split-window -v ping ${2} \; split-window -h -t 0 ping ${3} \; split-window -h -t 2 ping ${4}
}
alias tp="tmux neww -n pingR ping 0 -c 3 \; select-window -t pingR ; dnscheck" # Expected to run dnscheck in new window
alias pp="mping"
现在
tp
dnscheck
在新的执行多路复用窗口正确地(有一点黑客ping 0 -c 3
:)pp 0 0 0 0
也能完成工作
但无法弄清楚如何将它们合并以获得pp
执行的默认值tp