มีวิธี bash ในการรับดัชนีขององค์ประกอบที่ n ของอาร์เรย์ bash แบบกระจัดกระจายหรือไม่?
printf "%s\t" ${!zArray[@]} | cut -f$N
การใช้การตัดเพื่อสร้างดัชนีดัชนีของอาเรย์ดูเหมือนจะมากเกินไป โดยเฉพาะอย่างยิ่งเมื่ออ้างอิงถึงดัชนีแรกหรือดัชนีสุดท้าย
มีวิธี bash ในการรับดัชนีขององค์ประกอบที่ n ของอาร์เรย์ bash แบบกระจัดกระจายหรือไม่?
printf "%s\t" ${!zArray[@]} | cut -f$N
การใช้การตัดเพื่อสร้างดัชนีดัชนีของอาเรย์ดูเหมือนจะมากเกินไป โดยเฉพาะอย่างยิ่งเมื่ออ้างอิงถึงดัชนีแรกหรือดัชนีสุดท้าย
หากฉันเข้าใจคำถามของคุณถูกต้อง คุณอาจใช้สิ่งนี้โดยใช้ read
:
# sparse array
declare -a arr=([10]="10" [15]="20" [21]="30" [34]="40" [47]="50")
# desired index
n=2
# read all indices into an array
read -ra iarr < <(printf "%s\t" ${!arr[@]})
# fine nth element
echo "${arr[${iarr[n]}]}"
30