#!/bin/bash
# Utiliser getopt.

# Essayez ce qui suit lors de l'appel à ce script.
#   sh ex33a.sh -a
#   sh ex33a.sh -abc
#   sh ex33a.sh -a -b -c
#   sh ex33a.sh -d
#   sh ex33a.sh -dXYZ
#   sh ex33a.sh -d XYZ
#   sh ex33a.sh -abcd
#   sh ex33a.sh -abcdZ
#   sh ex33a.sh -z
#   sh ex33a.sh a
# Expliquez les résultats de chacun.

E_OPTERR=65

if [ "$#" -eq 0 ]
then   # Le script a besoin d'au moins un argument en ligne de commande.
  echo "Usage $0 -[options a,b,c]"
  exit $E_OPTERR
fi  

set -- `getopt "abcd:" "$@"`
#  Positionne les paramètres de position par rapport aux arguments en ligne de
#+ commandes.
# Qu'arrive-t'il si vous utilisez "$*" au lieu de "$@" ?

while [ ! -z "$1" ]
do
  case "$1" in
    -a) echo "Option \"a\"";;
    -b) echo "Option \"b\"";;
    -c) echo "Option \"c\"";;
    -d) echo "Option \"d\" $2";;
     *) break;;
  esac

  shift
done

#  Il est généralement mieux d'utiliser la commande intégrée 'getopts'
#+ dans un script.
#  Voir "ex33.sh".

exit 0
