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

Retourner aux forums || Retourner au forum Programmation.shell

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

--
Je suis
7fe1c8ccf7e7fb4e51ba666b259410e026edbde5 et toi?
> Lire le message (9 commentaires, moyenne: 2,1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

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?

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.shell