Saya punya array ini:
declare -A astr
Saya menambahkan elemen ke dalamnya:
astr[elemA]=123
astr[elemB]=199
Tapi nanti saya perlu tahu apa ID indeks (elemA dan elemB) dan daftar mereka.
echo "${astr[@]}" #this only get me the values...
Saya punya array ini:
declare -A astr
Saya menambahkan elemen ke dalamnya:
astr[elemA]=123
astr[elemB]=199
Tapi nanti saya perlu tahu apa ID indeks (elemA dan elemB) dan daftar mereka.
echo "${astr[@]}" #this only get me the values...
Jawaban:
Anda bisa mendapatkan daftar "kunci" untuk array asosiatif seperti:
$ echo "${!astr[@]}"
elemB elemA
Anda dapat beralih di atas "kunci" seperti:
for i in "${!astr[@]}"
do
echo "key : $i"
echo "value: ${astr[$i]}"
done
$ for i in "${!astr[@]}"; do echo "key : $i"; echo "value: ${astr[$i]}"; done
key : elemB
value: 199
key : elemA
value: 123
${!var[index]}
tidak berfungsi, hanya ${!var[@]}
atau ${!var[*]}
lakukan :(
keys=(${!var[@]})
dan kemudian ${keys[n]}
memberi saya indeks, tetapi pada saat yang sama saya juga menyadari bahwa saya perlu memikirkan kembali pendekatan saya.
astr2=(a b c d e);echo ${!astr2[@]};unset astr2[2];echo ${!astr2[@]}
thx!