Cygwin

Résolu
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

6 réponses

  1. Modérateur
    Salut,

    execute le script avec la commande
    sh -vx ton_script.sh
    et affiche ici ce que vois
    1. 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 ~
      $
    2. 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.
    3. Contributeur
      est-ce qu'il y a une fin de ligne après le fi ?

      fi<enter>
    4. @dubceknon, mais lorsque j'essai de la rajouter il me donne comme message " line 8: syntax error: unexpected end of file" merci
    5. Contributeur
      @dubcekAvec quel editeur ?
      essayer d'ajouter
      fi<enter>
      exit<enter>
  2. 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.
    1. 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 .
      1. 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.
    2. Modérateur
      Salut,

      affiche ton script
      1. mon script est:
        #!/bin/bash
        if [$#=2]
        then
        echo "bonjour1 $2 $1 "
        else
        echo "syntaxe $0"
        fi
    3. Modérateur
      Salut,

      essaie
      #!/bin/bash
      if [ $# = 2 ]
      then
      echo "bonjour1 $2 $1 "
      else
      echo "syntaxe $0"
      fi
      
      1. salut lami20j.
        le probleme n'est pas resolu il reste le message d'erreur