Dapatkan indeks elemen pertama atau ke-n dari array bash yang jarang

Apakah ada cara bash untuk mendapatkan indeks elemen ke-n dari array bash yang jarang?

printf "%s\t" ${!zArray[@]} | cut -f$N

Menggunakan cut untuk mengindeks indeks array tampaknya berlebihan, terutama jika mengacu pada yang pertama atau terakhir.


person Paul    schedule 18.12.2019    source sumber
comment
Apa itu array bash renggang?   -  person kvantour    schedule 18.12.2019


Jawaban (1)


Jika saya memahami pertanyaan Anda dengan benar, Anda dapat menggunakannya seperti ini menggunakan 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
person anubhava    schedule 18.12.2019