Obtener el último elemento en la matriz Bash

Digamos que tengo una matriz:

arr=(a b c d e f)

Si quiero obtener el último elemento de la matriz, normalmente tengo que obtener el número total de elementos, restar uno y usar ese número para llamar como índice:

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

Sin embargo,Veo que recientemente (Bash 4.2 - 4.3) puede usar índices negativos:

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

Entonces me pregunto: ¿cuándo se introdujo esto? ¿También puede ser utilizado por otros shells como ksh, zsh ...?

Mi investigación muestra:

Bash-4.3-rc1 disponible para FTP

a. Se corrigió un error que causaba la asignación a una variable no establecida usando un subíndice negativo para dar como resultado una falla de segmentación.

si. Se corrigió un error que causaba la asignación a una variable de cadena usando un subíndice negativo para usar el índice incorrecto.

...

X. El shell ahora permite asignar, hacer referencia y desarmar elementos de matrices indexadas utilizando subíndices negativos (a [-1] = 2, echo $ {a [-1]}) que cuentan desde el último elemento de la matriz.

YBash manual 4.3, en matrices

Hacer referencia a una variable de matriz sin un subíndice es equivalente a hacer referencia a un subíndice de 0. Si el subíndice utilizado para hacer referencia a un elemento de una matriz indexada se evalúa en un número menor que cero, se interpreta como relativo a uno mayor que el índice máximo de la matriz, por lo que los índices negativos cuentan desde el final de la matriz, y uníndice de -1 se refiere al último elemento.

Pero me pregunto si esto ya estaba en Bash 4.2, ya que el primer recurso menciona un error que se corrigió.

Respuestas a la pregunta(1)

Su respuesta a la pregunta