web-dev-qa-db-fra.com

Exécuter des scripts .sh dans Git bash

Je suis sur une machine Windows utilisant git 2.7.2.windows.1 avec MINGW64.

J'ai un script en C:/path/to/scripts/myScript.sh

Comment puis-je exécuter ce script depuis mon compte git bash?

Il était possible de l'ajouter au fichier .bashrc et ensuite d'exécuter tout le fichier bashrc. 

Mais je veux ajouter le script à un fichier séparé et l'exécuter à partir de là.

29
Edvin

Disons que vous avez un script script.sh. Pour l’exécuter (en utilisant Git Bash), procédez comme suit:

chmod +x script.sh
./script.sh

Vous pouvez remplacer la chmod par les autorisations exécutables souhaitées. Ceux-ci peuvent être trouvés ici

Remarque: La chmod doit uniquement être exécutée une fois. Exécutez ./script.sh lorsque vous souhaitez exécuter le script.

28
intboolstring
#!/usr/bin/env sh

c'est comme ça que git bash sait qu'un fichier est exécutable. chmod a+x ne fait rien dans gitbash.

28

Si vous souhaitez exécuter un fichier de script à partir de l'invite git bash sous Windows, faites-le précéder du sh

sh my_awesome_script.sh
21
JohnWrensby

J'ai eu un problème similaire, mais je recevais un message d'erreur 

ne peut pas exécuter le fichier binaire

J'ai découvert que le nom de fichier contenait des caractères non-ASCII. Quand ceux-ci ont été corrigés, le script a fonctionné correctement avec ./script.sh.

2
Mike

J'avais deux scripts .sh pour démarrer et arrêter les serveurs Digital Ocean que je voulais exécuter à partir de Windows 10. Voici ce que j'ai fait: 

  • téléchargé "Git pour Windows" (à partir de https://git-scm.com/download/win ). 
  • git installé
  • pour exécuter le script .sh, il suffit de double-cliquer sur le fichier de script et de lancer l’exécution du script. 

Maintenant, exécutez le script à chaque fois que je double-clique dessus.

0
Yogesh

Si par hasard vous avez changé le fichier ouvert par défaut pour les fichiers .sh en un éditeur de texte comme moi, vous pouvez simplement "bash.\Yourscript.sh", à condition que git bash soit installé et dans le chemin.

0
taavi