10
我正在嘗試使用關聯數組在bash中編寫腳本。 我有一個文件名爲data
:Bash從文件讀取到關聯數組
a,b,c,d,e,f
g,h,i,j,k,l
下面的腳本:
oldIFS=${IFS}
IFS=","
declare -A assoc
while read -a array
do
assoc["${array[0]}"]="${array[@]"
done
for key in ${!assoc[@]}
do
echo "${key} ---> ${assoc[${key}]}"
done
IFS=${oldIFS}
給我
a ---> a b c d e f
g ---> g h i j k l
我需要我的輸出是:
a b ---> c d e f
g h ---> i j k l
你可以添加一些改進:1.把'IFS ='的'read'命令,而不必亂動節約'IFS'和恢復它。 2.在循環中添加'(($ {#array [@]}> = 2))||繼續'或類似的東西來擺脫空行。 3.將你的任務寫成'assoc [「$ {array [@] :: 2}」] = $ {array [@]:2}''。 –
@gniourf_gniourf,是'$ {array [@] :: 2''的形式,其中'$ {parameter:offset:length}'帶有ommited'offset',然後'offset'假定爲零? – Ashkan
是的,沒錯! –