122 votes

Exécuter un script bash à partir de Windows PowerShell

Sous cygwin, je pouvais simplement exécuter ./script.sh args, mais cela ouvre le fichier de script dans le Bloc-notes de PowerShell.

Que dois-je faire pour le faire exécuter ?

84voto

Marius Tancredi Points 731

Il existe désormais une solution "native" sous Windows 10, après avoir activé Bash sur Windows, vous pouvez entrer dans l'invite de commande Bash en tapant bash: Bash on Windows

Vous pouvez exécuter un script Bash comme bash ./script.sh, mais gardez à l'esprit que le lecteur C est situé à /mnt/c, et les disques durs externes ne sont pas montables. Vous devrez peut-être donc modifier votre script un peu pour qu'il soit compatible avec Windows.

Aussi, même en tant que root, vous pouvez encore obtenir une autorisation refusée lors du déplacement de fichiers dans /mnt, mais vous avez tout de même votre plein pouvoir de root dans le système de fichiers /.

Assurez-vous également que votre script shell est formaté avec le style Unix, sinon il pourrait y avoir des erreurs. Exemple de script

28voto

TheBonsai Points 3112

Vous devriez mettre le script en argument pour un shell *NIX que vous exécutez, équivalent au fonctionnement *NIX

sh myscriptfile

24voto

Il peut également être exécuté en exportant les bash et sh de gitbash C:\Program Files\git\bin\ vers les variables environnementales de Windows.

Dans la section Avancé dans la variable path, veuillez ajouter C:\Program Files\git\bin\ ce qui rendra le bash et le sh du git-bash exécutables à partir de la window cmd.

Redémarrez Powershell puis exécutez le fichier shell comme

bash shellscript.sh ou sh shellscript.sh

21voto

Rynant Points 6575

Si vous ajoutez l'extension .SH à la variable d'environnement PATHEXT, vous pourrez exécuter des scripts shell à partir de PowerShell en utilisant uniquement le nom du script avec des arguments :

PS> .\script.sh args

Si vous stockez vos scripts dans un répertoire inclus dans votre variable d'environnement PATH, vous pouvez l'exécuter de n'importe où, et omettre l'extension et le chemin :

PS> script args

Remarque : sh.exe ou un autre shell *nix doit être associé à l'extension .sh.

3voto

ghost21blade Points 312

Manière la plus simple (Windows10)

./votre_script.sh

Mais vous devez activer l'exécution de script sur PowerShell Voir ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X