我收到一个请求,要求在bash脚本中将IP列表作为数组传递。例如:
./ myscript.sh 192.168.0.1,192.168.0.10,192.168.0.15 ......
上述参数中的ip应该正确填充bash脚本中存在的数组。如果有人可以将它与getopts utlity结合使用,我会很喜欢。
仅供参考-我是bash的新手,所以请谅解......
答案 0 :(得分:0)
首先,您需要从输入中删除逗号,sed
会注意这一点。
然后,您可以仅使用var=()
语法创建一个数组。
#! /bin/bash
no_commas=`echo $1 | sed -e 's/,/ /g'`
ip_array=($no_commas)
for addr in ${ip_array[@]}; do
echo "Address: $addr"
done
哪个给我:
$./bash_array.sh 192.168.1.33,192.168.2.3
Address: 192.168.1.33
Address: 192.168.2.3