Bashでは、次のように配列全体を繰り返すことなく、配列の最後の(希少)要素のインデックスを取得できますか?
a=( e0 e1 ... )
i=0
while [ "$i" -lt $(( ${#a[@]} - 1 )) ]
do
let 'i=i+1'
done
echo "$i"
少なくともbash v 4.2からは、次のようになります。値配列の最後の要素の使用
e="${array[-1]}"
しかし、それは私を理解していないでしょう。ポジティブ他の要素が同じ値を持つことができるので、インデックスを作成します。
ベストアンサー1
配列がリーンでない場合、最後のインデックスは要素数 - 1 です。
i=$(( ${#a[@]} - 1 ))
スパース配列の場合を含めるには、インデックス配列を作成して最後の配列を取得できます。
a=( [0]=a [1]=b [9]=c )
indexes=( "${!a[@]}" )
i="${indexes[-1]}"
echo "$i"
9