Récupérer paramétre
Fermé
sam
-
6 juin 2013 à 14:43
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 6 juin 2013 à 17:34
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 6 juin 2013 à 17:34
A voir également:
- Récupérer paramétre
- Recuperer video youtube - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
6 réponses
Bonjour sam,
$1 pour le paramètre 1, $2 pour le paramètre 2...
Voir :
http://www.commentcamarche.net/faq/5444-bash-les-parametres
$1 pour le paramètre 1, $2 pour le paramètre 2...
Voir :
http://www.commentcamarche.net/faq/5444-bash-les-parametres
merci pour votre retour.
Je me suis mal fait exprimé peut être.
J'ai un script interactif qui attend un choix de ma part. exemple :
contenu du script test.sh
for choice in 1 2 3 4
do
echo "1 - choix1"
echo "2 - choix2"
echo "3 - choix3"
echo "4 - Quitter"
echo "Select option:"
read choice
case $choice in
1) call_f1;;
2) call_f2 ;;
3) call_f3;;
4) exit 0 ;;
*) echo "choix invalide" ;;
esac
done
comment je peux passer mon choix en ligne de commande pour exécuter le script en mode ligne de commande de tel sorte à passer mes choix directement sur l'invite shell.
exemple :
test.sh 2 ==> executer directement call_f2.
Merci d'avance.
Je me suis mal fait exprimé peut être.
J'ai un script interactif qui attend un choix de ma part. exemple :
contenu du script test.sh
for choice in 1 2 3 4
do
echo "1 - choix1"
echo "2 - choix2"
echo "3 - choix3"
echo "4 - Quitter"
echo "Select option:"
read choice
case $choice in
1) call_f1;;
2) call_f2 ;;
3) call_f3;;
4) exit 0 ;;
*) echo "choix invalide" ;;
esac
done
comment je peux passer mon choix en ligne de commande pour exécuter le script en mode ligne de commande de tel sorte à passer mes choix directement sur l'invite shell.
exemple :
test.sh 2 ==> executer directement call_f2.
Merci d'avance.
C'est bien ce que j'avais compris, mais ma réponse était peut-être trop évasive.
En reprenant votre script :
Ça doit faire le job, normalement. Je n'ai pas pu tester le code mais les idées sont là aux erreurs de syntaxe près.
Concrètement : on teste si l'argument de ligne de commande a une valeur valide parmi 1, 2, 3 ou 4. Si ce n'est pas le cas, on exécute l'entrée clavier.
Autrement, on passe directement à l'évaluation de $choice.
$1 correspond au premier argument de la ligne de commande.
En reprenant votre script :
choice=$1 if[$1 -ne 1] && [$1 -ne 2] && [$1 == 3] && [$1 -ne 4]; then for choice in 1 2 3 4 do echo "1 - choix1" echo "2 - choix2" echo "3 - choix3" echo "4 - Quitter" echo "Select option:" read choice fi case $choice in 1) call_f1;; 2) call_f2 ;; 3) call_f3;; 4) exit 0 ;; *) echo "choix invalide" ;; esac done
Ça doit faire le job, normalement. Je n'ai pas pu tester le code mais les idées sont là aux erreurs de syntaxe près.
Concrètement : on teste si l'argument de ligne de commande a une valeur valide parmi 1, 2, 3 ou 4. Si ce n'est pas le cas, on exécute l'entrée clavier.
Autrement, on passe directement à l'évaluation de $choice.
$1 correspond au premier argument de la ligne de commande.
est ce qu'il n'y a pas possibilité de le faire sans pour autant modifier le script? sinon, créer un autre script se basant sur le premier?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
6 juin 2013 à 17:34
6 juin 2013 à 17:34
Salut,
Il te faut juste appeler ton script comme suit :
Pour sélectionner le choix numéro "2".
Il te faut juste appeler ton script comme suit :
./test.sh <<<2
Pour sélectionner le choix numéro "2".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question