IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

for dans un make


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut for dans un make
    Bonjour à tous,

    Dans un gnu make sur cygwin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cible.x: dep1.a dep2.b dep3.c
    	@echo "@" : $@
    	@echo "^" : $^
    	@echo "<" : $<
    	for fichier in "ls  *.c"
    	do
    	echo $fichier
    	done
     
    /bin/sh: -c: line 1: syntax error: unexpected end of file
    Merci

    JPD

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Et c'est quoi la question
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    Je commence avec lbash et make.

    Pourquoi : "unexpected end of file"

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    d'une part une cible est définie par :: (: c'est pour une règle)

    d'autre part as-tu vérifié que tu as bien une ligne blanche à la fin du fichier ?

    Souvent ça peut provenir de ça..

  5. #5
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    Voilà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    # <projet>/Makefile
    # Test des variables automatiques
    # *** missing separator.  Stop.   pas de tab
    # Une cible 'supplémentaire'  (ex  clean)doit être placée après la cible 'par défaut'. 
    cible.x: dep1.a dep2.b dep3.c
    	@echo "@" : $@
    	@echo "^" : $^
    	@echo "<" : $<
    	for fichier in "ls  *.c"
    	do
    	echo $fichier
    	done
     
    dep1.a :
    	@echo $@ > $@
     
    dep2.b :
    	@echo $@ > $@
     
    dep3.c :
    	@echo $@ > $@	 
     
    # Cible            : fictive (make clean)
    # Dependances      :
    # Actions          : effacement des fichiers produits dans /out
     
     
    clean:
    	del dep*.*
    ligne vide à la fin.

    JPD

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Dans un Makefile, une ligne correspond à une exécution.
    Du coup, là, il va essayer d'exécuter for et s'arrêter. Puis do et s'arrêter, etc.

    A ça, tu as donc deux solutions :

    1. tout écrire sur une seule ligne ;
    2. utiliser des \ pour échapper les sauts de lignes.

    Solution 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cible.x: dep1.a dep2.b dep3.c
        @echo "@" : $@
        @echo "^" : $^
        @echo "<" : $<
        for fichier in "ls  *.c"; do echo $fichier; done
    Solution 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    cible.x: dep1.a dep2.b dep3.c
        @echo "@" : $@
        @echo "^" : $^
        @echo "<" : $<
        for fichier in "ls  *.c"; do\
            echo $fichier;\
        done
    Par contre, au passage, ça marche vraiment ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for fichier in "ls *.c"
    Personnellement, j'aurais fait (pas le même type de quotes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for fichier in `ls *.c`
    Et pour plus de sécurité, encadre tes variables avec des double quotes :
    Ca évite des des catastrophes quand il y a un espace ou un caractère spécial dans le nom de fichier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une boucle for dans un switch case?
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 14h05
  2. Problème "for" dans dictionnaire de liste
    Par Sayrus dans le forum Général Python
    Réponses: 3
    Dernier message: 15/02/2006, 16h35
  3. Boucle For dans un TDBGrid
    Par Latipolia dans le forum C++Builder
    Réponses: 28
    Dernier message: 14/06/2005, 12h12
  4. boucle for dans un if...
    Par SylverFox dans le forum Débuter
    Réponses: 3
    Dernier message: 11/08/2004, 16h57
  5. Boucle for dans un script cmd
    Par nicolas.ganache dans le forum Développement
    Réponses: 4
    Dernier message: 19/07/2004, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo