Problème avec getops et case
Doezer
Messages postés
289
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je bloque actuellement sur un script en bash que je réalise.
J'utilise getops pour vérifier chacune de mes options, mais une fois qu'il a fini de les vérifier, le script reste dans une boucle infinie causée par le while.
Le problème, c'est que la valeur de getops devrait passer de FALSE à TRUE mais ça n'arrive pas.
Voilà l'extrait de code :
Et à chaque exécution, rien n'est affiché donc.
Je bloque actuellement sur un script en bash que je réalise.
J'utilise getops pour vérifier chacune de mes options, mais une fois qu'il a fini de les vérifier, le script reste dans une boucle infinie causée par le while.
Le problème, c'est que la valeur de getops devrait passer de FALSE à TRUE mais ça n'arrive pas.
Voilà l'extrait de code :
while getopts "h:m:a:u:p:d:D:s" option; do case $option in m) mois=$OPTARG ;; a) annee=$OPTARG ;; u) user=$OPTARG ;; p) pass=$OPTARG ;; d) dir=$OPTARG ;; D) db=$OPTARG ;; s) tempsql=$OPTARG ;; h) .... message d'aide ... exit 1 ;; /?) echo "Incorrect syntax. Type logextract.bash -h for help." echo "" exit 1 ;; esac done shift $(($OPTIND-1))
Et à chaque exécution, rien n'est affiché donc.
A voir également:
- Problème avec getops et case
- Excel case choix multiple - Guide
- Case à cocher word ne fonctionne pas ✓ - Forum Word
- Aller à la ligne dans une case excel - Guide
- Supprimer case à cocher excel ✓ - Forum Excel
- Supprimer des cases à cocher (Excel 2003) - Forum Excel
1 réponse
salut,
pourquoi veux-tu que le script affiche quelque chose: il n'y a rien de prévu pour qu'il affiche quelque chose !
à part en cas d'emploi d'une option non prévue, mais là c'est bash qui prend la main.
dans le case, le point d'interrogation est mal protégé, ça devrait être \?)
si je met un echo $mois à la fin, et que j'appelle le script ./script -m 12
il affiche effectivement 12.
pourquoi veux-tu que le script affiche quelque chose: il n'y a rien de prévu pour qu'il affiche quelque chose !
à part en cas d'emploi d'une option non prévue, mais là c'est bash qui prend la main.
dans le case, le point d'interrogation est mal protégé, ça devrait être \?)
si je met un echo $mois à la fin, et que j'appelle le script ./script -m 12
il affiche effectivement 12.