Bashを使って配列の最後の要素を読み取る方法はありますか?

Bashを使って配列の最後の要素を読み取る方法はありますか?

たとえば、5つの要素からなる配列があるとします。

[a][b][c][d][e]

echoを使用すると、${myarray[4]}内容を確認できます。

しかし、与えられた配列の要素数がわからない場合はどうなりますか?長さが不明な配列の最後の要素を読み取る方法はありますか?つまり、右から左に読み取った配列の最初の要素は何ですか?

Bashでこれを行う方法を知りたいです。

ベストアンサー1

バッシュ4.2からスタート、それでもやります。負のインデックスの使用 ${myarray[-1]}最後の要素を取得します。 2番目から最後まで同じことを行うことができ、クリティカルにも同様です。

インデックス配列要素を参照するために使用される下付き文字がゼロより小さい数値として評価されると、配列の最大インデックスより大きい1に基づいて解釈されるため、負のインデックスは配列の末尾から逆に計算されます。 1 は要素の終わりを示します。

展開にも同様に適用されます。 「表現式」と言うと、実際には式を意味します。${#myarray[@]}以前のバージョンのように計算するために配列の長さを明示的に使用する式を含むインデックスを計算するための算術式を作成できます。${myarray[${#myarray[@]} - 1]}

おすすめ記事