Posez votre question Signaler

Exécution d'un script shell avec CygWin ? [Résolu]

Karto 5Messages postés 19 décembre 2006Date d'inscription - Dernière réponse le 30 mars 2011 à 01:21
Bonjour à tous
J'ai installé CygWin sur mon PC pour exécuter des script Shell.
J'ai donc écrit un fichier test.sh; mon problème c'est que pour l'exécuter je doit appeler explicitement le programme "sh.exe":
$ sh test.sh
Il me semble que, dans mes souvenir d'utilisation d'Unix, il suffisait d'invoquer le nom du fichier de script pour qu'il s'exécute.
$ ./test.sh
J'ai cherché des heures sur le Web alors si quelqu'un à une idée je le remercie.
Lire la suite 

Exécution d'un script shell avec CygWin »

13 réponses
Réponse
+4
moins plus
Je répond donc à mon propre message.

J'avais largement oublié cette discution quand un collègue ma apporté la réponse.

Apparemment certaines version de CygWin sont en mode Unix et ne reconnaissent pas les fichiers générés par WordPad (ou Crimson dans mon cas). Il faut donc, dans la fenêtre CygWin, convertir le fichier contenant le script par la commande :
$dos2unix nomFich.sh

On peut aussi utiliser dans certains éditeurs la comande Document->File Format->Unix Format
lami20j- 15 juin 2007 à 18:50
Salut,

tu ne réponds pas à ton propre message puisque la question n'était pas la conversion d'un fichier dos vers unix mais
comment on exécute un script dans cygwin

pour ne pas parler de titre de message Exécution d'un script shell avec CygWin ?

en revanche si dans ta tête c'était ça la question alors la prochaine fois il faut la poser correctement ici :-))
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Ton script est-il exécutable au moins ?
Jette un oeil à cet excellent article de la FAQ de CCM...

;-))
Karto- 20 déc. 2006 à 12:36
Salut, merci pour ta réponse.

J'aivérifié, le script est bien exécutable. En fait, après le
#!bin/sh il avait un autre commentaire qui foutait la grouille. C'est ça de récupérer des exemples sur le net !

Par contre j'ai toujours des choses surprenantes dès que j'utilise des instructions un peu plus complexes que "echo" :

#! /bin/sh
cat fich1.txt fich2.txt > res.txt

ce script me créé bien le fichier "res.txt", par contre si le "cat" est suivi d'une autre instruction ("echo fin" par ex.) il est ignoré

$ ./test.sh
: No such file or directory
fin

La question est donc : est-ce que CYWIN est bien adapté à l'exécution des scripts ???
ou corolaire : est-ce que j'y comprendrais rien ??
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

est-ce que CYWIN est bien adapté à l'exécution des scripts ???


OUI.

est-ce que j'y comprendrais rien ??

je dirai plutôt que tu es impatient :-))

Affiche ce que contient ton script pour pouvoir trouver l'erreur.
Karto- 20 déc. 2006 à 13:20
Oui je sais, je suis un peu impatient ...

Le voilà ce fameux script :

#! /bin/sh
cat fich1.txt fich2.txt > res.txt
echo fin

et la réponse est :

$ ./test.sh
: No such file or directory
fin

Par contre si j'enlève le "echo" final ça marche ??????
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

chez moi sur Cygwin ton script fonctionne

tape
sh -x test.sh
et affiche le résultat
Ajouter un commentaire
Réponse
+0
moins plus
Salut a tous...

J'ai le même genre de problème, je dois executer des script shell fais sous linux sous windows.

Apres l'installe de Cygwin la plupart des commandes doint g besoin fonctionnent en ligne de commande MAIS des que je mets ca dans un script avec un directory quelconque, il me marque no such file or directory.

La meme commande marche en ligne de commande.

Si qqun a une idée ca serai cool

merci d'avance
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

il me marque no such file or directory

c'est sûrement une histoire de chemins d'accès

affiche les commandes que tu tapes pour voir
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Merci d'avoir pris le temps de revenir donner la solution.

Ceci dit, si le programme n'est pas installé, on peut toujours utiliser cette astuce :
sed conversion retours chariots dos crlf unix lf

;-))
venzi - 26 nov. 2008 à 15:41
Salut à tous.
J'avais aussi des pbs d'exécution de script sous cygwin, et la solution était bien "de passer un petit coup" de dos2unix.
Je trouve cela étonnant, car je créé mes scripts avec Vim et pour moi il n'y avait pas de soucis de syntaxe avec cet éditeur.... (type ^M en fin de ligne)

Aprés vérification, il semble qu'il y ait qd meme des '$' et des '{\r' en extra avec Vim, ce que dos2unix supprime.


Merci en tous les cas !
Ajouter un commentaire
Réponse
+0
moins plus
Merci Karto tu ma sauver la vie LOL,
c'est con de devoir a chaque foi convertir....
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
je pose cette sol pour ceux qui ne veulent a chaque fois faire un dos2unix
En peu tres facilement le faire en creant le fichier et en le nommant .sh
comme ça , en peu l'editer avec n'importe quel editeur de texte (bloc note..)
Ajouter un commentaire
Ce document intitulé « Exécution d'un script shell avec CygWin ? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?