2014-02-25 156 views
0

我寫了這種語言免費,因爲我不是100%確定如何在bash中做到這一點。字符串變成bash中的變量

我想帶的陣列類似如下:

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

然後訪問陣列鍵作爲一個變量在bash像這樣:

$address=127.0.01 
echo $address 

127.0.0.1 

感謝。

+0

獲取JSON解析器。 – devnull

+0

'地址= 127.0.0.1; VAR = 「地址」; echo $ {!var}' – bobah

回答

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或更高版本中可用。

+0

超級!謝謝你,非常有幫助 – outrunthewolf