Problème avec un case en Bash
all94
Messages postés
77
Date d'inscription
Statut
Membre
Dernière intervention
-
jivef Messages postés 927 Date d'inscription Statut Membre Dernière intervention -
jivef Messages postés 927 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un grand soucis et je n'arrive pas à le débuger. Je dévellope un logiciel et en l'occurence son assistant d'installation en Bourne Again Shell mais problème j'ai créer 3 fonctions et par le biais d'un case je souhaite rediriger l'utilisateur sur ces trois fonctions. Voici donc le code incriminé :
Si il a besoins que je dévoile l'intégralité de mon code source (ce qui me dérange pas car le logiciel est libre et opensource via la GNU LGPL 3) je le ferais.
Merci d'avance,
codialement all94.
j'ai un grand soucis et je n'arrive pas à le débuger. Je dévellope un logiciel et en l'occurence son assistant d'installation en Bourne Again Shell mais problème j'ai créer 3 fonctions et par le biais d'un case je souhaite rediriger l'utilisateur sur ces trois fonctions. Voici donc le code incriminé :
clear echo echo " ___________________________________________________________________________" echo " ! +===========================================+ !" echo " ! + Minecraft Portable Installator by All94 + !" echo " ! + V1.0 + !" echo " ! +===========================================+ !" echo " ! !" echo " ! !" echo " ! !" echo " ! ********************** !" echo " ! * Menu Principal * !" echo " ! ********************** !" echo " ! !" echo " ! !" echo " ! 1 - Lancer l'installation !" echo " ! !" echo " ! 2 - Lire les licences et crédits !" echo " ! !" echo " ! 3 - Quitter l'assistant !" echo " !___________________________________________________________________________!" echo read -p "> " choice case $choice in 1) install ;; 2) licence inmenu ;; 3) quit ;; *) reload ;; esac
Si il a besoins que je dévoile l'intégralité de mon code source (ce qui me dérange pas car le logiciel est libre et opensource via la GNU LGPL 3) je le ferais.
Merci d'avance,
codialement all94.
A voir également:
- Problème avec un case en Bash
- Bingo bash - Télécharger - Divers Jeux
- Bash addition - Forum Shell
- Aller à la ligne dans une case excel - Guide
- Chaque fichier en ligne sur le web a un chemin d’accès sur un serveur. c’est le cas du fichier du logo présent sur la page de cette ville. quel est le chemin de ce fichier à partir de la racine du site ? - Forum Graphisme
- Excel case choix multiple - Guide
4 réponses
Et bien le problème est qu'il prend pas justement en compte ce case et me redirige toujours vers la fonction install et aucune autres.
Bonjour,
voila le code source : Lien
Pour ce qui est du débugage, j'utilise la commande bash --debug <nom du fichier>.sh
Cordialement, all94
voila le code source : Lien
Pour ce qui est du débugage, j'utilise la commande bash --debug <nom du fichier>.sh
Cordialement, all94
if [ $1=ininstall ]
Ben déjà il faut des espaces autour du signe égale ;('
Ensuite il vaut mieux quoter tes variables pour des tests entre crochets simples (ce n'est pas obligatoire avec des crochets doubles).
if [! -f lgpl.txt]
Idem, il faut un espace avant et après les crochets !!!
A modifier pour tous tes tests ;-\
Ben déjà il faut des espaces autour du signe égale ;('
Ensuite il vaut mieux quoter tes variables pour des tests entre crochets simples (ce n'est pas obligatoire avec des crochets doubles).
if [ "$1" = "ininstall" ]
if [! -f lgpl.txt]
Idem, il faut un espace avant et après les crochets !!!
if [ ! -f lgpl.txt ]
A modifier pour tous tes tests ;-\
Pour ce qui est du débugage, j'utilise la commande bash --debug <nom du fichier>.sh
Et tu n'as rien vu passer ???
Et encore j'ai arrêté avant la fin ;-(
Et tu n'as rien vu passer ???
MC_P_Install.sh: ligne 351: [! : commande introuvable lgpl.txt: Aucun fichier ou dossier de ce type Missing filename ("less --help" for help) rm: impossible de supprimer «licencebyf2ko.txt»: Aucun fichier ou dossier de ce type MC_P_Install.sh: ligne 43: [! : commande introuvable MC_P_Install.sh: ligne 53: ./browse: Aucun fichier ou dossier de ce type MC_P_Install.sh: ligne 170 : [: launcher : opérateur unaire attendu
Et encore j'ai arrêté avant la fin ;-(
Avec ce script :
Ça donne ça :

$ cat foo.sh #! /bin/bash #clear while : do echo echo " _________________________________________________" echo " ! 1 - Lancer l'installation !" echo " ! 2 - Lire les licences et crédits !" echo " ! 3 - Quitter l'assistant !" echo " !________________________________________________!" echo read -p "> " choice case $choice in 1) echo "Choix install choisi." break ;; 2) echo "Choix licence inmenu choisi." break ;; 3) echo "Bye bye... quit choisi." break ;; *) echo "Mauvais choix... reload choisi." continue ;; esac done
Ça donne ça :
