estudiant Posté(e) le 1 mars 2010 Partager Posté(e) le 1 mars 2010 Bonjour, j'aimerais simplement savoir comment traiter les options d'un script bash. Je sais qu'on peut récupérer les arguments avec les variables positionnelles et $*, mais pour les options je ne sais pas. Est-ce qu'il s'agit d'arguments comme les autres, à part que le nom commence par '-' ? Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
Quiproquo Posté(e) le 1 mars 2010 Partager Posté(e) le 1 mars 2010 Un bon lien vaut mieux que deux « tu l'auras », et qu'un long discours : http://tldp.org/LDP/abs/html/options.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
estudiant Posté(e) le 1 mars 2010 Auteur Partager Posté(e) le 1 mars 2010 Ce que j'aimerais faire c'est que si je met par exemple une option -r après le nom de mon script, alors mon script s'applique récursivement. Par exemple le script fait un 'ls' sur le répertoire rep passé en paramètre. Si l'option -r est présente alors il fait un 'ls' sur tout les répertoires dans l'arborescence de rep. Comment je peux faire ? Je ne suis pas mauvais en anglais mais là j'avoue ne pas bien avoir compris. Lien vers le commentaire Partager sur d’autres sites More sharing options...
uzak Posté(e) le 2 mars 2010 Partager Posté(e) le 2 mars 2010 Je pense que Quiproquo n'a pas capté ce que tu voulais. Oui, il s'agit d'arguments comme les autres récupérables par $1, $2... Mais, getopts fait du bon boulot pour ça http://pwet.fr/man/linux/commandes/posix/getopts ex : #!/bin/bash while getopts hvf: c_arg 2>/dev/null do case $c_arg in h) echo $HELP; exit 0;; v) echo $VERSION; exit 0;; f) FICHIER=$OPTARG;; \?) echo "bad argument(s)"; echo $HELP; exit 1;; esac done Lien vers le commentaire Partager sur d’autres sites More sharing options...
estudiant Posté(e) le 3 mars 2010 Auteur Partager Posté(e) le 3 mars 2010 Merci beaucoup :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.