有没有一种方法可以使用IP地址作为索引在bash中声明关联数组?

时间:2018-10-10 20:32:06

标签: arrays bash

我正在尝试这样做:

declare -a ip_array=( [127.0.0.1]=127.1.1.1 [127.1.1.1]=127.0.0.1 )

但是bash抱怨,因为它认为小数点是运算符:

bash: 127.0.0.1: syntax error: invalid arithmetic operator (error token is "127.0.0.1")

我尝试使用单引号和双引号,但每次似乎都在算术上求值。

编辑:声明数组时,我没有注意到小写-a选项和大写-A选项之间存在区别。

1 个答案:

答案 0 :(得分:1)

[-+] a声明名称为索引数组(使用+可接受的语法删除,但会导致错误消息)

[-+] A声明NAME为关联数组

尝试一下:

declare -A AR=( [127.0.0.1]=127.1.1.1 [127.1.1.1]=127.0.0.1 ); echo ${AR[@]};