Rechercher : dans
Par :
 Signaler ce message aux modérateurs

Bonjour à tous
J'ai installé CygWin sur mon PC sous windws xp pour exécuter des script Shell.
J'ai donc écrit un script simple test.sh; mon problème c'est que lors d'exucution il m'affiche un message d'erreur: syntax error near unexpected token 'fi', alors si quelqu'un à une idée je le remercie.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « cygwin » dans :

1

lami20j, le 19 aoû 2007 à 22:42:01

Salut,

affiche ton script lami20j

Répondre à lami20j

2

nouenoue, le 20 aoû 2007 à 00:14:36

Mon script est:
#!/bin/bash
if [$#=2]
then
echo "bonjour1 $2 $1 "
else
echo "syntaxe $0"
fi

Répondre à nouenoue

3

lami20j, le 20 aoû 2007 à 07:44:10

Salut,

essaie

#!/bin/bash
if [ $# = 2 ]
then
echo "bonjour1 $2 $1 "
else
echo "syntaxe $0"
fi
lami20j

Répondre à lami20j

4

nouenoue, le 20 aoû 2007 à 13:25:50

Salut lami20j.
le probleme n'est pas resolu il reste le message d'erreur

Répondre à nouenoue

5

lami20j, le 20 aoû 2007 à 13:44:46
  • +1

Salut,

execute le script avec la commande

sh -vx ton_script.sh
et affiche ici ce que vois lami20j

Répondre à lami20j

6

nouenoue, le 20 aoû 2007 à 13:50:42

Sh -vx ton_script.sh
Administrateur@a ~
$ sh -vx test2.sh
#!/bin/bash
if [ $# = 2 ]
then
echo "bonjour1 $2 $1 "
else
echo "syntaxe $0"
fi
test2.sh: line 7: syntax error near unexpected token `fi'
test2.sh: line 7: `fi'
Administrateur@a ~
$

Répondre à nouenoue

7

nouenoue, le 20 aoû 2007 à 15:35:44

J ai essayé avec la syntaxe suivante :
if [ $# = 2 ];then echo "bonjour1 $2 $1 ";else echo "syntaxe $0";fi;
et ca marche, mais je sais pas le probleme de l'autre.

Répondre à nouenoue

8

dubcek, le 20 aoû 2007 à 15:45:46

Est-ce qu'il y a une fin de ligne après le fi ?

fi<enter>

Répondre à dubcek

9

nouenoue, le 20 aoû 2007 à 22:41:24

Non, mais lorsque j'essai de la rajouter il me donne comme message " line 8: syntax error: unexpected end of file" merci

Répondre à nouenoue

10

dubcek, le 21 aoû 2007 à 09:33:03

Avec quel editeur ?
essayer d'ajouter
fi<enter>
exit<enter>

Répondre à dubcek

11

Darksidus, le 21 aoû 2007 à 11:14:10

J'ai eu des problèmes similaires, cela venait dans mon cas des retours chariots dos que cygwin n'arrivait pas à interpréter.

Tu peux tenter un dos2unix sur ton fichier script, ça pourrait marcher.

Répondre à Darksidus

12

nouenoue, le 21 aoû 2007 à 19:40:04

Merci pour ton aide Darksidus la commande que tu m' a proposé c'était bien. j'ai essayé avec et ca marche. merci a tous .

Répondre à nouenoue

13

 4pat, le 28 fév 2008 à 16:48:27

Il suffit de mettre a jour l'install de cygwin et de lui choisir "Dos /text" dans la fenetre "Default text file type".
Cygwin traitera alors les retour chariots Dos.

Répondre à 4pat