Problême Bash
Résolu/Fermé
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
-
13 juil. 2014 à 08:06
Bibifoot71 Messages postés 95 Date d'inscription vendredi 23 mai 2014 Statut Membre Dernière intervention 4 mars 2015 - 13 juil. 2014 à 20:13
Bibifoot71 Messages postés 95 Date d'inscription vendredi 23 mai 2014 Statut Membre Dernière intervention 4 mars 2015 - 13 juil. 2014 à 20:13
A voir également:
- Problême Bash
- Retour à la ligne bash ✓ - Forum Shell
- Bash path - Astuces et Solutions
- Bash permission non accordée - Forum Shell
- Bingo bash free - Télécharger - Divers Jeux
- Bash arguments - Astuces et Solutions
5 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
13 juil. 2014 à 09:23
13 juil. 2014 à 09:23
Salut,
Tiens, je te laisse jeter un oeil à cette doc sur les tests, ainsi que sur les comparaisons de chaînes de caractères, notamment les
Par contre pour ton exemple, il serait peut-être plus judicieux de faire ça dans ton
;-))
Tiens, je te laisse jeter un oeil à cette doc sur les tests, ainsi que sur les comparaisons de chaînes de caractères, notamment les
if...then...else...fiou encore les
if...then...elif...then...else...fiet compagnie.
Par contre pour ton exemple, il serait peut-être plus judicieux de faire ça dans ton
case...esacdirectement, non ?
case "${choix}" in premier) /home/${USER}/Bureau/0.2.2/chapitre1.sh ;; deuxieme) /home/${USER}/Bureau/0.2.2/chapitre2.sh ;; *) echo "Mauvaise réponse." exit ;; esac
;-))
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
13 juil. 2014 à 17:12
13 juil. 2014 à 17:12
Ok merci beaucoup je test ça et je te dirais ^^
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
Modifié par Bibifoot71 le 13/07/2014 à 17:45
Modifié par Bibifoot71 le 13/07/2014 à 17:45
Alors je l'ai réadapter et ça donne ça
donc j'ai tester read choix avant le case $choix et ça à donner ceci:
donc autant dire que ça n'a rien fait ^^ (dans le premier post la dernière variable était name c'est moi qui me suis tromper c'était bien choix désolé)
victor@victor-Inspiron-N7010:~$ cd /home/victor/Bureau/0.2.2 victor@victor-Inspiron-N7010:~/Bureau/0.2.2$ sh launcher1.1.sh [premier, deuxieme] Quel chapitre choisir ? : not found.sh: 3: launcher1.1.sh: launcher1.1.sh: 5: launcher1.1.sh: Syntax error: word unexpected (expecting "in") victor@victor-Inspiron-N7010:~/Bureau/0.2.2$
donc j'ai tester read choix avant le case $choix et ça à donner ceci:
victor@victor-Inspiron-N7010:~$ cd /home/victor/Bureau/0.2.2 victor@victor-Inspiron-N7010:~/Bureau/0.2.2$ sh launcher1.1.sh [premier, deuxieme] Quel chapitre choisir ? : not found.sh: 3: launcher1.1.sh: premier : bad variable nameread: choix launcher1.1.sh: 5: launcher1.1.sh: Syntax error: word unexpected (expecting "in") victor@victor-Inspiron-N7010:~/Bureau/0.2.2$
donc autant dire que ça n'a rien fait ^^ (dans le premier post la dernière variable était name c'est moi qui me suis tromper c'était bien choix désolé)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
13 juil. 2014 à 17:44
13 juil. 2014 à 17:44
On peut voir ton code en entier s'il te plaît ?
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
Modifié par Bibifoot71 le 13/07/2014 à 18:26
Modifié par Bibifoot71 le 13/07/2014 à 18:26
Voici le code en entier:
#!/bin/bash echo "[premier, deuxieme]" echo "Quel chapitre choisir ? " read choix case ${choix} in premier) /home/${USER}/Bureau/0.2.2/C1.sh ;; deuxieme) /home/${USER}/Bureau/0.2.2/C2.sh ;; *) echo "Le chapitre n'éxiste pas !" exit ;; esac
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
13 juil. 2014 à 17:59
13 juil. 2014 à 17:59
Euh... je viens de tester chez moi et le script marche très bien ;-\
Le
Les 2 scripts sont bien exécutables (
Le
${USER}est censé TE représenter et donc les 2 scripts à lancer doivent se trouver dans ton espace personnel (/home/TOI/Bureau/0.2.2/), c'est bien le cas ?
Les 2 scripts sont bien exécutables (
chmod +x) ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
Modifié par Bibifoot71 le 13/07/2014 à 18:31
Modifié par Bibifoot71 le 13/07/2014 à 18:31
Alors j'ai même renommer dans le script le ${USER} par mon nom pour voir si ca changer quelque chose mais non (l'espoir fait virvre :D) et oui c'est le bon répertoire et oui j'ai autoriser l'éxecution des deux scripts et voici ce qu'ils me mettent dans le terminal quand je le lance:
Quel chapitre choisir ?(Ps. je viens de remarquer que le
: not found.sh: 4: launcher1.1.sh:
[j'ai rentré ceci: premier]
: bad variable nameread: choix
launcher1.1.sh: 6: launcher1.1.sh: Syntax error: word unexpected (expecting "in")
: bad variable nameread: [La variable en question]le fait sur d'autres scripts que j'ai fait donc bah si ça peut aider je ne sais pas ^^)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
13 juil. 2014 à 18:31
13 juil. 2014 à 18:31
Il y a quelque chose qui cloche dans tes messages d'erreurs ;-(
Les numéros de lignes ne correspondent pas au script posté plus haut ;-\
Quel système d'exploitation utilises-tu ?
Quel shell ?
Les scripts sont fait avec quel éditeur ?
Avec le même script chez moi tout roule :
Avec les scripts suivants :
Les numéros de lignes ne correspondent pas au script posté plus haut ;-\
Quel système d'exploitation utilises-tu ?
Quel shell ?
Les scripts sont fait avec quel éditeur ?
Avec le même script chez moi tout roule :
$ ./foo.sh
[premier, deuxieme]
Quel chapitre choisir ?
premier
Vous avez lancé le script C1.sh
$ ./foo.sh
[premier, deuxieme]
Quel chapitre choisir ?
deuxieme
Vous avez lancé le script C2.sh
Avec les scripts suivants :
cat foo.sh
#/bin/bash echo "[premier, deuxieme]" echo "Quel chapitre choisir ? " read choix case ${choix} in premier) /home/${USER}/trash/C1.sh ;; deuxieme) /home/${USER}/trash/C2.sh ;; *) echo "Mauvaise réponse." exit ;; esac
cat C1.sh
#/bin/bash echo "Vous avez lancé le script C1.sh"
cat C2.sh
#/bin/bash echo "Vous avez lancé le script C2.sh"
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
Modifié par Bibifoot71 le 13/07/2014 à 18:40
Modifié par Bibifoot71 le 13/07/2014 à 18:40
Alors j'utilise Ubuntu 14.04 LTS, en Shell j'utilise le Bash, bah comme un gros blaireau j'utilise Gedit mais de base quand je fais du Python j'utilise Geany mais ça ne marchais pas quand je faisait du shell et oui j'ai exactement la même chose que toi en script mais ça ne marche pas :'(
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
13 juil. 2014 à 18:42
13 juil. 2014 à 18:42
Rajoute
set -xvaprès le shebang, lance le script et rapporte ici la sortie complète.
#/bin/bash
set -xv
echo "[premier, deuxieme]"
echo "Quel chapitre choisir ? "
[...]
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
13 juil. 2014 à 18:47
13 juil. 2014 à 18:47
Quand je fais ton truc ça me mets
launcher1.1.sh: 2: set: Illegal option -mais surtout j'ai regardé nous avons EXACTEMENT le même script à la majuscule près et j'ai "Ctr-C/Ctrl-V" ton fichier et ça marche --'
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
13 juil. 2014 à 18:50
13 juil. 2014 à 18:50
Petite comparaison, le tiens:
Le miens:
#/bin/bash echo "[premier, deuxieme]" echo "Quel chapitre choisir ? " read choix case ${choix} in premier) /home/${USER}/trash/C1.sh ;; deuxieme) /home/${USER}/trash/C2.sh ;; *) echo "Mauvaise réponse." exit ;; esac
Le miens:
#!/bin/bash echo "[premier, deuxieme]" echo "Quel chapitre choisir ? " read choix case ${choix} in premier) /home/victor/Bureau/0.2.2/C1.sh ;; deuxieme) /home/victor/Bureau/0.2.2/C2.sh ;; *) echo "Ce chapitre n'éxiste pas..." exit ;; esac