我正在开发一个网络脚本,它将帮助确定哪个网关存在,具体取决于它所在的本地网络。它将回显我给出网关的位置。
有什么方法可以简化脚本吗?我知道有很多方法可以写这个。例如,在为每个网关声明变量后,为每个网关或简单array
子句创建元素列表if then
。什么是最有效和最简单的?
GW=$(route get default | grep gateway | awk '{ print $2 }')
case ${GW} in
10.0.1.1
echo "US"
;;
10.0.2.2
echo "CN"
;;
10.1.2.1
echo "UK"
;;
esac
答案 0 :(得分:3)
我认为associative array
会带来最少的生物传感器。
declare -A ARR # to make it associative
ARR["10.0.1.1"]="US"
ARR["10.0.2.2"]="CN"
ARR["10.1.2.1"]="UK"
echo ${ARR[$GW]:-"unknown gateway"} # ":-" (Use Default Values) for missing key
有关详情,请查看man bash
。