Problème avec un script shell
Résolu
Tyx
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
Tyx Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Tyx Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde.
J'ai un soucis avec mon programme. Voici un bout de mon programme et je vous explique mon problème :
while getopts 'w:c:f:u:h' choix; do
case $choix in
w) warning=$2
;;
c) critical=$4
;;
f)
free="ok"
;;
u)
utilisation="ok"
;;
h)
echo "$utils"
exit
;;
esac
done
Voici le bout de programme, j'explique mon problème.
Lorsque j'execute mon script avec les arguments appropriés derrière, cela ne fonctionne pas pour -f et -u.
Exemple :
./script.sh -h ( fonctionne )
./script.sh -w valeur -c valeur ( fonctionne )
./script.sh -f ( fonctionne pas )
./script.sh -u ( fonctionne pas )
Alors j'ai essayé de bidouiller un peu mon programme et en mettant ceci :
while getopts 'w:c:fu:h' choix;
L'exemple ./script.sh -f ( fonctionne ) mais ./script.sh -u ( fonctionne pas )
Si je fais ceci :
while getopts 'w:c:uf:h' choix;
L'exemple ./script.sh -u ( fonctionne ) mais ./script.sh -f ( fonctionne pas )
Voila, si vous avez une idée de l'erreur que j'ai faite ou une modification à apporter pour que cela m'accepte mes arguments, je vous en serai reconnaissant.
A bientot.
J'ai un soucis avec mon programme. Voici un bout de mon programme et je vous explique mon problème :
while getopts 'w:c:f:u:h' choix; do
case $choix in
w) warning=$2
;;
c) critical=$4
;;
f)
free="ok"
;;
u)
utilisation="ok"
;;
h)
echo "$utils"
exit
;;
esac
done
Voici le bout de programme, j'explique mon problème.
Lorsque j'execute mon script avec les arguments appropriés derrière, cela ne fonctionne pas pour -f et -u.
Exemple :
./script.sh -h ( fonctionne )
./script.sh -w valeur -c valeur ( fonctionne )
./script.sh -f ( fonctionne pas )
./script.sh -u ( fonctionne pas )
Alors j'ai essayé de bidouiller un peu mon programme et en mettant ceci :
while getopts 'w:c:fu:h' choix;
L'exemple ./script.sh -f ( fonctionne ) mais ./script.sh -u ( fonctionne pas )
Si je fais ceci :
while getopts 'w:c:uf:h' choix;
L'exemple ./script.sh -u ( fonctionne ) mais ./script.sh -f ( fonctionne pas )
Voila, si vous avez une idée de l'erreur que j'ai faite ou une modification à apporter pour que cela m'accepte mes arguments, je vous en serai reconnaissant.
A bientot.
A voir également:
- Problème avec un script shell
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
2 réponses
Salut,
A partir du moment où tu places le caractère ":" (deux points) derrière une option, celle-ci attend un argument. Donc forcément si tu ne places rien derrière tes options "f" ou "u" cela ne marchera pas ;-((
Idem pour
A partir du moment où tu places le caractère ":" (deux points) derrière une option, celle-ci attend un argument. Donc forcément si tu ne places rien derrière tes options "f" ou "u" cela ne marchera pas ;-((
while getopts 'w:c:fu:h' choix; L'exemple ./script.sh -f ( fonctionne ) mais ./script.sh -u ( fonctionne pas )Normal "f" n'attend aucun argument alors que "u" en attend un.
Idem pour
while getopts 'w:c:uf:h' choix; L'exemple ./script.sh -u ( fonctionne ) mais ./script.sh -f ( fonctionne pas )...