Tom's Guide > Forum > Programmation > Script SH - Not a valid indetifier

Script SH - Not a valid indetifier

Forum Programmation : Script SH - Not a valid indetifier

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,


Je recherche à faire un script assez bête mais je comprends pas, il ne semble pas prendre en compte le contenu de la variable 'read'

Voici mon script SH :

Citation :

#!/bin/sh
SEPARATEUR="==================="
echo $SEPARATEUR
echo "Menu d'exploitation"
echo $SEPARATEUR
echo ""
echo "[1] - Lancer TSE"
echo ""
echo "[2] - Arrêter TSE"
echo ""
echo "[3] - Quitter"
echo ""
delai_seconde=5
echo " Choix :"
read choix
case $choix in
1) echo "Lancement de TSE"
net start "Services Terminal Server";;
2) echo "Arret de TSE"
net stop "Services Terminal Server";;
3) break;;
*) echo "Option non valide";;
esac



Quand je le lance, il m'affiche le menu et attend bien une saisie au clavier. Quand je fais une saisie au clavier voilà ce qu'il me renvoit :

Citation :

$ ./menu.sh
===================
Menu d'exploitation
===================

[1] - Lancer TSE

[2] - Arrêter TSE

[3] - Quitter

Choix :
1
': not a valid identifier `choix
'/menu.sh: line 16: syntax error near unexpected token `in
'/menu.sh: line 16: `case $choix in



J'avoue que je comprends pas très bien ce qu'il se passe surtout que le code est pas compliqué... pour info pour exécuter le script, j'utilise Cygwin...

Merci d'avance.

PS: Autre chose tant que j'y suis :D La commande "clear" ne fonctionne pas... y a t'il une astuce ?


Message édité par Darit le 24-01-2007 à 14:13:39
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

chez moi ca marche, t'as modifie qq chose sur cygwin?
d'ailleurs clear.exe aussi marche :ouch:

Répondre à coca25

Ben je ne vois pas très bien ce que j'ai modifié... j'ai fait une install normal avec les pakages pour l'utilisation de SSH (+ ceux d'emacs je crois) et puis c'est tout :-s

pour le clear, en fait j'ai réussi à le faire fonctionner mais seulement si je mets une ligne du type PS3=... juste derrière le clear...

Cela peut-il venir de mon éditeur (Sciite) qui enregistrerai dans un format particulier ?

Répondre à Darit

Bon j'ai refais des tests, il y a du mieux mais il y a des choses bizarres...

Voici mon code :

Citation :


#!/bin/sh
choix=2
trap '' 2 3 #Annule la commande Ctr+C
while[$choix -ne 3] #Test s'il l'on doit quitter le menu ou non
do
#clear #Début menu
SEPARATEUR="==================="
echo $SEPARATEUR
echo "Menu d'exploitation"
echo $SEPARATEUR
echo ""
echo "[1] - Lancer TSE"
echo ""
echo "[2] - Arrêter TSE"
echo ""
echo "[3] - Quitter"
echo ""
delai_seconde=5
echo " Choix :"
read choix #Lecture du choix
case $choix in #Case
1) echo "Lancement de TSE" #Choix 1
net start "Services Terminal Server";; #Exec
2) echo "Arret de TSE" #Choix 2
net stop "Services Terminal Server";; #Exec
3) exit;; #Choix 3
*) echo "Option non valide";; #Autre choix
esac #
done
exit #Sortie du menu



Et le truc c'est que je suis obligé de mettre des commentaires sinon il me renvoit des erreurs de "command not found"...

D'ailleurs ce programme ne marche toujours pas car il ne "reconnait pas" le "done"...

Quelqu'un a t'il une idée ?

Edit: Voici ce que cela donne lors de l'exécution :

Citation :


$ ./menu.sh
-ne 3]: command not found
: command not founddo
===================
Menu d'exploitation
===================

[1] - Lancer TSE

[2] - Arrêter TSE

[3] - Quitter

Choix :
2
Arret de TSE
La pause ou l'arrêt demandé(e) n'est pas valide pour ce service.

Vous obtiendrez une aide supplémentaire en entrant NET HELPMSG 2191.

: command not found done


Message édité par Darit le 25-01-2007 à 12:22:24
Répondre à Darit
Tom's Guide > Forum > Programmation > Script SH - Not a valid indetifier
Aller à :

Il y a 1103 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens