用脚本参数填充bash数组

时间:2018-11-05 23:01:04

标签: linux bash scripting getopts

我收到一个请求,要求在bash脚本中将IP列表作为数组传递。例如:

./ myscript.sh 192.168.0.1,192.168.0.10,192.168.0.15 ......

上述参数中的ip应该正确填充bash脚本中存在的数组。如果有人可以将它与getopts utlity结合使用,我会很喜欢。

仅供参考-我是bash的新手,所以请谅解......

1 个答案:

答案 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