#!/bin/bash
# neg-array.sh
# Nécessite Bash 4.2 au minimum


tableau=( zero un deux trois quatre cinq )  # Tableau de 6 éléments.
#         0    1   2    3    4    5
#        -6   -5  -4   -3   -2   -1

# Il est maintenant possible d'utiliser des indices négatifs.
echo ${tableau[-1]}   # cinq
echo ${tableau[-2]}   # quatre
# ...
echo ${tableau[-6]}   # zero
# Les indices négatifs sont comptés à rebours à partir du
# dernier élément+1

# Mais vous ne pouvez pas utiliser d'indice au-delà du
# premier élément du tableau.
echo ${tableau[-7]}   # tableau: mauvais indice de tableau


# Alors, à quoi sert cette nouvelle fonctionnalité ?

echo "Le dernier élément du tableau est « ${tableau[-1]} »"
# Ce qui est plus simple que :
echo "Le dernier élément du tableau est « ${tableau[${#tableau[*]}-1]} »"
echo

# Et...

indice=0
let "dernier_indice_negatif = 0 - ${#tableau[*]}"
# Nombre d'éléments, converti en nombre négatif.

while [ $indice -gt $dernier_indice_negatif ]; do
  ((indice--)); echo -n "${tableau[indice]} "
done  # Affiche les éléments du tableau, à l'envers.
      # Nous venons de simuler la commande « tac » avec ce
      # tableau.
echo

# Consultez également « neg-offset.sh ».
