配列の最後の要素を別の配列に割り当てる方法は?

配列の最後の要素を別の配列に割り当てる方法は?

要素に次の $Info 配列があるとします。

!    total energy              = -1090.13343774 Ry
!    total energy              = -1090.20757070 Ry
!    total energy              = -1090.24296462 Ry
!    total energy              = -1090.25563488 Ry
!    total energy              = -1090.27085564 Ry
!    total energy              = -1090.27693129 Ry
!    total energy              = -1090.28213580 Ry
!    total energy              = -1090.29131927 Ry

最後の要素を取得してスペースに分割し、別の配列$ LastInfoに提供したいと思います。どうすればいいですか?

私はこれを試しました。

lst=$((${#Info[@]} -1))
IFS=' ' LastInfo=($en[$lst])

しかし、に掲載されているようにこここのコードは機能しません。

ベストアンサー1

によってksh93bashまたはzsh

last=( "${arr[@]: -1}" )

これはlast=( "${arr[-1]}" )zshスタイルに比べて利点があります(移植性が高いだけでなく、ksh93およびbash 4.2以下ではzshスタイルの構文はサポートされていません)。$arr空の配列がある場合は、$last空の配列ではなく空の配列になります。 。空の要素を含む配列です。

おすすめ記事