内容如下

bash3.x不支持关联数组(associative arrays)结构,只支持用数值作数组索引,如
declare -a Myarray Myarray[1]=”www.ttlsa.com” Myarray[2]=”39514058”
bash4.x支持关联数组结构,如
declare -A Myarray Myarray['website']=”www.ttlsa.com” Myarray['QQqun']=”39514058”
支持关联数组结构,将大大方便定义变量,更好的写出方便简洁的代码。简单就是美。
我们工作中看到一推if…elsif…else语句,十多个判断,眼睛都看花了,修改起来也不方便。
顺便改了下:
#!/bin/bash
#
ftpserver=(
"121.207.242:ftpserver1.backup.xx.com"
"121.207.240:ftpserver2.backup.xx.com"
"121.207.250:ftpserver3.backup.xx.com"
)
function process_array() {
declare -a hash=("${!1}")
key=""
for ftpsrv in "${hash[@]}"; do
# key: ${ftpsrv%%:*}
# value: ${ftpsrv##*:}
if [ $key = ${ftpsrv%%:*} ];then
ftpserver=${ftpsrv#*:}
echo $ftpserver
fi
done
}
ftp_s=$(process_array ftpserver[@] "121.207.250")
echo $ftp_s
说明下:121.207.242:ftpserver1.backup.xx.com,冒号前面是key,后面是value,不同的IP段对应不同的ftp地址。没有全部把if…elsif…else语句条件罗列到变量ftpserver。要添加更改相关信息,只需更改ftpserver变量即可。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/industrynews/102356.html