Forum Linux.débutant Problème sur cygwin avec le caractère étoile

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
19
mai
2014

Bonjour Mesieurs!

Débutant sur cygwin j'aurai grandement besoin de votre aide. J'essaye de d'executer dans mon .sh la commande suivante :
cat $DS_EXPORT/UpdateCVS.$DS_HOST.*.JOBS | sort -u

le problème c'est que le caractère * est mal considéré. Moi je voudrai l'utiliser pour selectionner tous les fichiers. Hors ici l'étoile semble étre pris pour un caractère non spécial du coup je me retrouve avec un fichier introuvable.

Merci d'avance pour votre aide.

  • # ça devrait pourtant fonctionner...

    Posté par  . Évalué à 1.

    Ça devrait pourtant fonctionner, car ta commande me paraît correcte.

    Fait ceci pour débogguer :

    set -x
    cat $DS_EXPORT/UpdateCVS.$DS_HOST.*.JOBS | sort -u
    

    et dis-nous le résultat.

    Autre piste pour faire apparaître d'éventuels caractères fantaisistes provoqués par un shift-espace malencontreux :

    echo cat $DS_EXPORT/UpdateCVS.$DS_HOST.*.JOBS | od -c
    
  • # je comprends pas ...

    Posté par  . Évalué à 1.

    D'après ce que je vois avec les lignes de débug ajoutées : le caractère * semble ne pas selectionner mes fichier. Il semble que le script cherche un fichier avec * dedans et forcément ils n'existent pas…

    Le fait d'encadrer mes variables n'y change rien. Je pense que c'est un problème lié directement à cygwin, n'y a t'il rien à rajouté dans la variable d'environement pour que cigwin interprète le * ?

    Merci pour votre aide.

    • [^] # Re: je comprends pas ...

      Posté par  . Évalué à 1.

      Je ne pense pas que cygwin y soit pour quelque chose.

      Si le * n'est pas remplacé, ça veut dire qu'aucun fichier ne correspond au motif recherché.

      Dans mon terminal, si je fais :

      set -x
      cat tototo*
      + cat 'tototo*'
      cat: tototo*: No such file or directory
      touch tototo1
      cat tototo*
      + cat tototo1
      

      On voit bien que dans le premier cat, le * de tototo* n'est pas remplacé.
      Et la deuxième fois, le * est remplacé parce que la recherche par le motif a trouvé un fichier.

Suivre le flux des commentaires

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