Shell script lecture des arguments
Fermé
fifi
-
6 déc. 2010 à 17:13
Ro&ri Messages postés 683 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 18 avril 2011 - 7 déc. 2010 à 13:19
Ro&ri Messages postés 683 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 18 avril 2011 - 7 déc. 2010 à 13:19
A voir également:
- Shell script lecture des arguments
- Script vidéo youtube - Guide
- Confirmation de lecture whatsapp - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Accusé de lecture gmail - Guide
- Lecture epub - Guide
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
6 déc. 2010 à 18:08
6 déc. 2010 à 18:08
Salut,
Peut être devrais-tu t'orienter vers la commande "getopts" pour gérer tes différents paramètres, non ?
Exemple d'utilisation...
Peut être devrais-tu t'orienter vers la commande "getopts" pour gérer tes différents paramètres, non ?
Exemple d'utilisation...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
7 déc. 2010 à 11:27
7 déc. 2010 à 11:27
Bon un exemple plus concret se rapprochant de ce que tu veux faire, mais il faudra approfondir et adapter ;-))
;-))
$ cat foo.sh #! /bin/bash #set -xv while getopts ":u:p:" OPTION do case $OPTION in u) FLAG=1 grep -q "$OPTARG" /etc/passwd RETVAL="$?" if [ "$RETVAL" != 0 ] then echo "Le paramètre \"-u\" nécessite un nom d'utilisateur existant." echo exit 3 else echo "Utilisateur : $OPTARG" fi ;; p) if [ "${FLAG}" = 1 ] then shift 3 else shift 1 fi for PARAM in "$@" do echo "Kill -9 $PARAM" done ;; :) echo "Argument manquant pour l'option -$OPTARG" read -s -n1 -p "Appuyez sur une touche..." touche echo exit 4 ;; \?) echo "Option inconnue \"-$OPTARG\" ! " read -s -n1 -p "Appuyez sur une touche..." touche echo exit 5 ;; esac done shift $((OPTIND-1)) $ ./foo.sh -u zipe -p toto tata titi Utilisateur : zipe Kill -9 toto Kill -9 tata Kill -9 titi $ ./foo.sh -u -p toto tata titi grep : option invalide -- 'p' Usage: grep [OPTION]... MOTIF [FICHIER]... Pour en savoir davantage, faites: « grep --help ». Le paramètre "-u" nécessite un nom d'utilisateur existant. $ ./foo.sh -u zipe -p Utilisateur : zipe Argument manquant pour l'option -p Appuyez sur une touche... $ ./foo.sh -u toto -p toto tata titi Le paramètre "-u" nécessite un nom d'utilisateur existant. $
;-))
Ro&ri
Messages postés
683
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
18 avril 2011
77
7 déc. 2010 à 13:19
7 déc. 2010 à 13:19
Si il ne prend pas en compte ce qui est après le pipe, c'est parceque c'est un caractère réservé au shell, pour lui indiquer que tu veux "chaîner" des commandes ...