ฉันมีชุดนี้:
declare -A astr
ฉันเพิ่มองค์ประกอบเข้าไป:
astr[elemA]=123
astr[elemB]=199
แต่ต่อมาฉันต้องรู้ว่า ID ดัชนี (elemA และ elemB) คืออะไรและแสดงรายการเหล่านั้น
echo "${astr[@]}" #this only get me the values...
ฉันมีชุดนี้:
declare -A astr
ฉันเพิ่มองค์ประกอบเข้าไป:
astr[elemA]=123
astr[elemB]=199
แต่ต่อมาฉันต้องรู้ว่า ID ดัชนี (elemA และ elemB) คืออะไรและแสดงรายการเหล่านั้น
echo "${astr[@]}" #this only get me the values...
คำตอบ:
คุณสามารถรับรายการ "คีย์" สำหรับอาเรย์แบบเชื่อมโยงดังนี้:
$ echo "${!astr[@]}"
elemB elemA
คุณสามารถทำซ้ำมากกว่า "ปุ่ม" ดังนี้:
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]}
ใช้งานไม่ได้มีเพียง${!var[@]}
หรือ${!var[*]}
ทำ: (
keys=(${!var[@]})
จากนั้น${keys[n]}
ให้ดัชนีกับฉัน แต่ในเวลาเดียวกันฉันก็ตระหนักว่าฉันต้องคิดทบทวนแนวทางของฉัน
astr2=(a b c d e);echo ${!astr2[@]};unset astr2[2];echo ${!astr2[@]}
ขอบคุณ!