Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.shell : shell (bash) et C

Posté par abdoulfatahou () le 10 mai 2007
Bonjour co-Linuxien,

j'ai fait un script qui est sensé redirige du code C sur un fichier, malheureusement ca ne marche pas tres bien pour les guillemets des "printf'

la ligne:



echo printf\(\"erreur de calcul pour l'appel $fonction\($params\)\"\)\;>>./TestCoutEtalageSaisonnier.c



semble poser probleme, j'ai l'erreur suivante:

$ ./genprog valeurTest.txt

./genprog: line 23: unexpected EOF while looking for matching `''

./genprog: line 30: syntax error: unexpected end of file



Est ce que quelqu'un a la solution a mon probleme?

Merci de vos reponses

--------------------------------------------------------------------------------

le code:

#scripts linux: genere un programme de test a partir de valeurs prensentent sur fichier *.txt



echo \#include\<stdio.h\> >./TestCoutEtalageSaisonnier.c

cpt=0



for val in $(grep ":" ./$1)

do



cpt=$(expr $cpt + 1)



if [ $cpt -eq 1 ]

then

fonction=$(echo $val | cut -d ":" -f 2)

lib=$(echo $val | cut -d ":" -f 3)

echo \#include\"$lib\">>./TestCoutEtalageSaisonnier.c

echo int main\(void\)>>./TestCoutEtalageSaisonnier.c

echo {>>./TestCoutEtalageSaisonnier.c

else

params=$(echo $val | cut -d ":" -f 1)

res=$(echo $val | cut -d ":" -f 2)



echo if\($fonction\($params\)!=$res\)>>./TestCoutEtalageSaisonnier.c

echo printf\(\"erreur de calcul pour l'appel $fonction\($params\)\"\)\;>>./TestCoutEtalageSaisonnier.c

fi



done



echo return 0\;>>./TestCoutEtalageSaisonnier.c

echo }>>./TestCoutEtalageSaisonnier.c

> Lire le message (9 commentaires, moyenne: 2,1).  

Vous avez demandé le commentaire #830980.

C'est comme le monsieur il dit

Posté par Sisyphe Plâtrier () le 10/05/2007 à 19:39. (lien). Évalué à 4.

C'est le _'_ de _l'appel_ qui fait foirer et qu'il faudrait protéger.
Mes 2 cts.

  • [^]Re: C'est comme le monsieur il dit

    Posté par abdoulfatahou () le 10/05/2007 à 20:04. (lien). Évalué à 1.

    "C'est le _'_ de _l'appel_ qui fait foirer et qu'il faudrait protéger."

    Desole je n'arrive pas a relire clairement le monsieur :-(

    --
    Je suis
    7fe1c8ccf7e7fb4e51ba666b259410e026edbde5 et toi?
    • [^]Re: C'est comme le monsieur il dit

      Posté par Sisyphe Plâtrier () le 10/05/2007 à 20:25. (lien). Évalué à 2.

      l'appel
      _^_

      [^]Re: C'est comme le monsieur il dit

      Posté par Vincent ORDY () le 10/05/2007 à 20:26. (lien). Évalué à 2.

      Il dit qu'il faut utiliser

      echo printf\(\"erreur de calcul pour l\'appel $fonction\($params\)\"\)\;>>./TestCoutEtalageSaisonnier.c

      • [^]je ne m'appelle pas "syntax error"! :-)

        Posté par abdoulfatahou () le 10/05/2007 à 23:33. (lien). Évalué à 1.

        Merci pour la solution les amis.

        --
        Je suis
        7fe1c8ccf7e7fb4e51ba666b259410e026edbde5 et toi?
        • [^]Re: je ne m'appelle pas "syntax error"! :-)

          Posté par liberforce (Jabber id, page perso, ) le 11/05/2007 à 09:02. (lien). Évalué à 6.

          j'ai encore mieux: plutôt que echo, quand tu as plusieurs lignes à taper, utilise plutôt cat

          VARIABLE=2

          cat << EOF > fichier.c
          #include <stdio.h>
          int main(void)
          {
          static const int var=$VARIABLE;
          printf("Variable = %d\n", var);
          return var;
          }
          EOF


          En gros tu dis à cat d'attendre la chaine de caractère "EOF" pour comprendre que c'est la fin du texte à mettre dans le fichier.

          • [^]Re: je ne m'appelle pas "syntax error"! :-)

            Posté par gaaaaaAab () le 11/05/2007 à 10:15. (lien). Évalué à 1.

            ouaip, ça, c'est cool.
            Et juste pour faciliter les recherches google ;) , le petit nom en anglais de la technique, c'est le "here script"

        [^]je ne m'appelle pas "syntax error"! :-)

        Posté par abdoulfatahou () le 11/05/2007 à 14:15. (lien). Évalué à 1.

        Merci pour la solution les amis.

        --
        Je suis
        7fe1c8ccf7e7fb4e51ba666b259410e026edbde5 et toi?

        [^]je ne m'appelle pas "syntax error"! :-)

        Posté par abdoulfatahou () le 11/05/2007 à 14:56. (lien). Évalué à 1.

        Merci pour la solution les amis.

        --
        Je suis
        7fe1c8ccf7e7fb4e51ba666b259410e026edbde5 et toi?