Cygwin

rico34 Messages postés 9 Statut Membre -  
 max -
Bonsoir,

J'essaie de tester ce code sur l'émulateur cygwin, code qui fonctionne correctement sur unix.

shopt -s extglob
for file in $(find . -maxdepth 1 -type f) ; do
if https://www.commentcamarche.net/s/echo-file ; then
echo "*** Nom fichier $file invalide"
continue
fi
echo "* Traitement $file"
awk -v NbChampValide=10 '
BEGIN {
FS=";"
OFS=";"
}
{
if (NF != NbChampValide) {
print "*** sur Record "NR" : "NF" champs presents (valide "NbChampValide") !!!" | "cat 1>&2"
}
printf("%06d;%s\n",NR,$0)
} ' $file
done

Sur cygwin, j'ai le message suivant :
J'ai cette réponse.
sh essai.sh
invalid shell option nametglob
essai.sh: line 2: syntax error near unexpected token `$'do\r''
essai.sh: line 2: `for file in $(find . -maxdepth 1 -type f) ; do

Merci pour vos lumières.
A voir également:
  • Cygwin
  • Cygwin - Télécharger - Édition & Programmation

1 réponse

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Essaie déjà de donner le chemin absolu du shell (/bin/sh voir à ce sujet la FAQ Cygwin) et peut être dans un premier temps de commenter la ligne appelant la commande "shopt" (# shopt -s).

Concernant l'erreur de la ligne 2, essaie de passer le "do" à la ligne en enlevant aussi le "point virgule" final :
for file in $(find . -maxdepth 1 -type f)
do
if...
Tu peux remettre la condition du "if" sans les crochets (qui sont interprétés par le code de CCM sinon), s'il te plait merci.

;-))
0
max
 
En fait c pas un pb de cygwin ou de syntax. c juste un caractere qui ne se voit pas dans ton editeur qui fout la merde.
J'ai eu le meme probleme et j'ai recopier le script a la main (sans faire copier + coller ) exactement dans un autre fichier et il a fonctionné.
0