Shell : Avoir des options en plus des arguments

Rien d’innovant, mais une syntaxe comme celle là il faut l’avoir à portée de main 😉
Quelques contraintes que je ne retrouve pas dans d’autres langages : Les options doivent être passées avant les arguments.
ce bout de code permet d’analyser les options (ici -u qui attend un argument). Le reste des arguments ($1, $2,…) est à récupérer normalement, les options sont supprimées de la ligne d’appel après lecture (et donc ne décalent pas la numérotation des arguments).

#!/bin/ksh

uid=""
while getopts u: option
do
    case $option in
        u) uid="${OPTARG}" ;;
        🙂 echo "option -$OPTARG needs an argument" ;;
        [?]) echo "Usage incorrect : "
                echo "$0 [-u option] arg1 "
                exit 1
                ;;
    esac
done
shift $OPTIND-1

echo "uid : [$uid]"
echo "\$@ : $@"
echo "\$# : $#"

echo "\$1 : $1"

Sinon il y a la méthode complète : http://docstore.mik.ua/orelly/unix3/korn/appb_11.htm

Publicités

Publié le 16 octobre 2013, dans Linux, Tips en vrac, et tagué , , . Bookmarquez ce permalien. Poster un commentaire.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :