字符串成为bash中的变量

时间:2014-02-25 19:03:24

标签: bash

我已经免费编写了这种语言,因为我不是100%确定如何在bash中这样做。

我想采用如下数组:

array=('address'=> '127.0.0.1', 'port' => '22')

然后像bash一样在bash中访问数组键:

$address=127.0.01
echo $address

127.0.0.1

感谢。

1 个答案:

答案 0 :(得分:2)

如果我理解了您的问题,我认为您需要associative arrays中的。这些需要使用declare -A显式声明:

$ declare -A array
$ array[address]=127.0.0.1
$ array[port]=22
$ key=address
$ echo ${array[$key]}
127.0.0.1
$ key=port
$ echo ${array[$key]}
22
$ echo ${!array[@]}
address port
$ echo ${array[@]}
127.0.0.1 22
$ 

您还可以一次指定多个元素:

$ array=([address]=127.0.0.1 [port]=22)
$

您可以遍历关联数组:

$ for key in ${!array[@]}; do
>     echo "key=\"$key\", array[$key]=\"${array[$key]}\""
> done
key="address", array[address]="127.0.0.1"
key="port", array[port]="22"
$ 

注意关联数组仅在 4.0或更高版本中可用。