获取Bash数组中的最后一个元素

假设我有一个数组:

arr=(a b c d e f)

如果我想获得数组的最后一个元素,我通常必须获取元素的总数,减去一个元素并使用该数字作为索引调用:

$ echo ${#arr[@]}
6
$ echo ${arr[${#arr[@]}-1]}
f

不过,我最近看到(Bash 4.2 - 4.3)可以使用负指标:

$ echo ${arr[-1]}
f
$ echo ${arr[-2]}
e

所以我想知道:这是什么时候推出的? 它是否也可以使用其他shell如ksh,zsh ...?

我的研究表明:

Bash-4.3-rc1可用于FTP

一个。 修复了使用负下标引起未赋值变量赋值导致分段错误的错误。

湾 修复了使用负下标来使用不正确的索引导致赋值给字符串变量的错误。

...

X。 现在,shell允许使用从数组的最后一个元素开始计数的负下标(a [-1] = 2,echo $ {a [-1]})来分配,引用和取消设置索引数组元素。

和Bash手册4.3,在数组上

引用不带下标的数组变量相当于使用下标0引用。如果用于引用索引数组的元素的下标的计算结果为小于零的数字,则将其解释为相对于大于最大索引该数组,所以负数索引从数组末尾开始计数, 索引-1表示最后一个元素

但是我想知道这是否已经在Bash 4.2中,因为第一个资源提到了一个已修复的bug。


据我所知,在https://tiswww.case.edu/php/chet/bash/CHANGES中,新功能就在这个部分:

本文档详细介绍了此版本bash-4.3-alpha与以前版本bash-4.2-release之间的更改。

...

X。 现在,shell允许使用从数组的最后一个元素开始计数的负下标(a [-1] = 2,echo $ {a [-1]})来分配,引用和取消设置索引数组元素。

修复:

本文档详细介绍了此版本bash-4.3-beta2和以前的版本bash-4.3-beta之间的更改。

1变更为Bash

一个。 修复了使用负下标引起未赋值变量赋值导致分段错误的错误。

湾 修复了使用负下标来使用不正确的索引导致赋值给字符串变量的错误。

它修复了Bash 4.3中的一个新功能。

链接地址: http://www.djcxy.com/p/91571.html

上一篇: Get last element in Bash array

下一篇: Remove the top and bottom layout guides in interface builder