我已经免费编写了这种语言,因为我不是100%确定如何在bash中这样做。
我想采用如下数组:
array=('address'=> '127.0.0.1', 'port' => '22')
然后像bash一样在bash中访问数组键:
$address=127.0.01
echo $address
127.0.0.1
感谢。
答案 0 :(得分:2)
如果我理解了您的问题,我认为您需要associative arrays中的bash。这些需要使用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" $
注意关联数组仅在bash 4.0或更高版本中可用。