Raccourci de Windows pour exécuter le script git bash
4 réponses
Git bash est déjà un fichier batch avec un contenu similaire à celui-ci:
C:\WINNT\system32\cmd.exe /c ""C:\Git\bin\sh.exe" --login -i"
si vous voulez exécuter (et laisser exécuter) un script shell dans le contexte du shell, spécifiez-le à la ligne de commande. L'astuce est que lorsque le nom du fichier script est interprété, il utilise le chemin Windows , pas le chemin équivalent dans l'environnement sh/Git.
En d'autres termes, pour exécuter le fichier D:\temp\test.sh
dans l'interpréteur de commandes Git et laissez-le tourner, créez ce fichier par lots:
C:\WINNT\system32\cmd.exe /c ""C:\Git\bin\sh.exe" --login -i -- D:\temp\test.sh"
d'un autre côté, si vous voulez exécuter un script et récupérer votre shell , vous devez:
- ouvrir la coque telle quelle
- éditer ou créer
~/.profile
(essayervi ~/.profile
) - ajouter cette ligne:
~/test.sh
(modifier le chemin si nécessaire)
donc avec un .profile
qui ressemble à ceci:
echo Executing .profile
/bin/sh ~/test.sh
et test.sh
qui ressemble à ceci:
echo Hello, World!
vous obtiendrez ce prompt:
Welcome to Git (version 1.7.11-preview20120710)
Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Executing .profile
Hello, World!
ixe013@PARALINT01 ~
$
D'autres réponses fonctionnent, mais il y a une solution plus courte, qui répond pleinement à la question , qui était:
Comment créer un raccourci Windows que je peux double cliquer pour lancer
tesh.sh
in Git Bash
la réponse est: ajouter la commande suivante au champ Target:
du raccourci:
"C:\Git\bin\sh.exe" -l "D:\test.sh"
où, -l
est le diminutif de --login
.
pour mieux comprendre ce que fait cette commande, consultez les documents officiels de GNU sur invoquant Bash :
-l
(--login
): faites que ce shell agisse comme s'il avait été invoqué directement par login. Quand le shell est interactif, c'est l'équivalent de démarrer un shell de connexion avecexec -l bash
. Quand la coquille est pas interactif, les fichiers de démarrage de l'interpréteur de commandes seront exécutés.exec bash -l
ouexec bash --login
remplacera l'actuel shell avec un shell Bash login.
notez Également que:
- soit vous avez besoin du chemin complet vers
sh.exe
soit vous l'avez dans votre variable d'environnementPATH
(comme d'autres l'ont déjà souligné). - si vous avez vraiment besoin de forcer l'invocation de l'interpréteur de commandes en mode interactif, vous pouvez ajouter l'option
-i
1519400920" - Le dernier paramètre est le chemin d'accès au script doit être exécuté. Ce chemin doit être au format Windows.
je recommande d'utiliser la variable d'environnement %ComSpec%
, au lieu du chemin absolu à cmd
:
%ComSpec% /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
ou tout simplement cmd
commande, qui est habituellement disponible à partir de % PATH% :
cmd /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
si votre C:\Program Files (x86)\Git\bin
ajouté à PATH
(qui est également une solution courante et l'un des cas sur TortoiseGit installation), vous pouvez utiliser juste:
cmd /c "sh --login -i"
meilleure solution à mon avis:
invoque le shell droit, pas de fenêtres inutiles et invoque ensuite un script bash; la fenêtre restera ouverte après la sortie du script:
-
créer un raccourci à
mintty.exe
sur votre bureau, par exemple -
Modifier les propriétés du raccourci et changer la cible (garder la chemin):
"C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
explication des paramètres:
-h always
garde la fenêtre ouverte lorsque le script est terminé, de sorte que la fenêtre ne disparaîtra pas pendant que vous êtes encore en train de lire la sortie (retirez si vous n'avez pas besoin de lire la sortie et voulez que la fenêtre se ferme automatiquement).
-l
fait de ce shell agir comme s'il avait été directement invoqué par login.
-e
sort immédiatement si un pipeline retourne un statut non-zéro ( more info ).