#!/bin/bash
# ref-params.sh : Déréférencer un paramètre passé à une fonction.
#                 (exemple complexe)

ITERATIONS=3  # Combien de fois obtenir une entrée.
icompteur=1

ma_lecture () {
  # Appelé avec ma_lecture nomvariable,
  # Affiche la précédente valeur entre crochets comme valeur par défaut,
  # et demande une nouvelle valeur.

  local var_locale

  echo -n "Saisissez une valeur "
  eval 'echo -n "[$'$1'] "'  # Valeur précédente.
# eval echo -n "[\$$1] "     #  Plus facile à comprendre,
                             #+ mais perd l'espace de fin à l'invite de l'utilisateur.
  read var_locale
  [ -n "$var_locale" ] &amp;&amp; eval $1=\$var_locale

  # "liste-ET" : si "var_locale", alors l'initialiser à "$1".
}

echo

while [ "$icompteur" -le "$ITERATIONS" ]
do
  ma_lecture var
  echo "Entrée #$icompteur = $var"
  let "icompteur += 1"
  echo
done  


# Merci à Stephane Chazelas pour nous avoir apporté cet exemple instructif.

exit 0
