Problême Bash
Résolu
Bibifoot71
Messages postés
95
Date d'inscription
Statut
Membre
Dernière intervention
-
Bibifoot71 Messages postés 95 Date d'inscription Statut Membre Dernière intervention -
Bibifoot71 Messages postés 95 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous et désolé si je me suis tromper de topic !
Bon j'explique mon problême, je fais un rpg textuel si on veut mais j'ai un problême justement avec le script car j'essais de faire un "launcher" et donc voila:
voila et je n'arrive pas à faire le "if [...] = ouvre mon bidul"
donc je ne sais pas si vous m'avez compris car il est tard (pour moi vu que je n'ai pas dormi lol) et merci pour ce qui vont m'aider car je ne trouve pas de réponse sur internet
Bibifoot
Bon j'explique mon problême, je fais un rpg textuel si on veut mais j'ai un problême justement avec le script car j'essais de faire un "launcher" et donc voila:
echo "[premier, deuxieme]" echo "Quel chapitre choisir ? " read choix case $choix in *) echo "vous avez choisis $choix" ;; esac if $name = "premier " then cat/home/[mon_nom_^^]/Bureau/0.2.2/chapitre1.sh #ou je penser a un cd /home... et sh ch1.sh if $name = "deuxieme"
voila et je n'arrive pas à faire le "if [...] = ouvre mon bidul"
donc je ne sais pas si vous m'avez compris car il est tard (pour moi vu que je n'ai pas dormi lol) et merci pour ce qui vont m'aider car je ne trouve pas de réponse sur internet
Bibifoot
A voir également:
- Problême Bash
- Bingo bash - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
5 réponses
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
;-))
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é)
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ^^)
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"
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