Pb d'execution en ligne de commande. [Cygwin] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 04-02-2008 à 10:38:17
Merci pout ton conseil mais malheureusement ca ne change rien. J'obtiens exactement le même résultat.
Par contre, j'ai continué à chercher et à faire des tests et il semble que le find s'execute dans le "contexte" MSDOS. C'est à dire que lorsque que lance la commande suivante :
Code :
|
J'obtiens exactement le meme message d'erreur
Quelqu'un peut il m'expliquer ce phenomène ??
Marsh Posté le 06-02-2008 à 12:22:53
Dans un shell bash, si tu tapes :
bash -c 'test.sh' |
Ton shell "fork" et il y a un nouveau processus fils avec [bash -c 'test.sh'] qui s'exécute.
Ce processus fils hérite de tous les attributs du père.
Si tu fais en DOS :
bash -c 'test.sh' |
Tu n'as pas ce processus père, tu dois te débrouiller seul.
Donc la différence doit venir de là.
Si on regarde cygwin.bat qui lance cygwin, on voit :
bash --login -i |
Je ne pense pas qu'être intéractif change quoi que ce soit, donc c'est peut-être l'aspect "login shell" qui te manque (cf man bash puis INVOCATION)
Marsh Posté le 27-03-2008 à 23:41:26
Salut,
xav_dev a écrit : Merci pout ton conseil mais malheureusement ca ne change rien. J'obtiens exactement le même résultat.
|
Ton problème ne viendrait-il pas du fait que dans le contexte du bash (lancé depuis le dos) qui execute ton test.sh, la commande find qui est exécutée est en fait l'ignoble find.exe de dos/windows ?
J'ai essayé de reproduire ton pb en ajoutant dans le test.sh un "type find"
Code :
|
Résultat :
Code :
|
ce n'est pas tout a fait le même message, mais néanmoins on voit bien que ce n'est pas le find cygwin qui est utilisé
du coup, le fix qui marche chez moi est simplement de faire :
Code :
|
La difference de comportement entre lancement depuis dos vs. cygwin est que dans l'env cygwin, le path /usr/bin doit se retrouver avant les paths vers le repertoire windows\system32, du coup tu tombes sur le bon find d'emblée.
Marsh Posté le 31-01-2008 à 09:46:53
Bonjour a tous,
J'ai un problème d'execution d'un shell sur Cygwin, je m'explique :
J'ai un script tous simple qui fait une recherche de fichier à l'aide de ma commande "find"
fichier test.sh :
Il faut pouvoir ordonnancer ce script et pour ca je souhaite le lancer à partir d'une commande dos que voici :
bash.exe -c 'test.sh'
Biensure sans oublier de mettre le fichier test.sh au format UNIX et de rajouter dans le path le répertoire bin de Cygwin et le répertoire dans lequel se trouve le script test.sh.
Mon problème est que :
- Ce script fonctionne tres bien lorsque que je l'execute à partir d'une console Cygwin
- Il ne fonctionne pas lorsque je le lance en ligne de commande DOS. J'obtiens l'erreur suivante :
Si quelqu'un à déjà rencontré le problème je suis preneur de la solution. Sinon je suis preneur de toute idée de contournement l'idée étant de recuperer une liste de fichiers avec leur chemin absolu pour pouvoir les traiter un par un.
Merci d'avance pour vos réponses
Xavier.