J'ai acheté et j'utilise Windows 7 Ultimate, et j'aime l'utiliser pour développer des applications. L'un des inconvénients (comme avec tous les systèmes d'exploitation) est que je ne peux pas exécuter de scripts Bash. Existe-t-il un moyen d'exécuter des scripts Bash sur Windows en installant des logiciels? Ce n'est pas grave si cela ne fonctionne pas à 100%, mais tant que la fonctionnalité la plus courante est disponible, elle devrait être excellente.
100
Réponses:
Installez Cygwin , qui inclut Bash parmi de nombreux autres utilitaires GNU et Unix (sans qui il est peu probable que bash soit de toute façon très utile).
Une autre option est MSYS de MinGW qui comprend bash et un plus petit ensemble des utilitaires les plus importants tels que awk. Personnellement, j'aurais préféré Cygwin car il comprend des outils de levage aussi lourds que Perl et Python dont je ne peux pas me passer, alors que MSYS les parcourt et suppose que vous allez les installer vous-même.
Mise à jour : si quelqu'un est intéressé par cette réponse et exécute MS-Windows 10, veuillez noter que MS-Windows 10 dispose d'une fonctionnalité « Sous-système Windows pour Linux » qui, une fois activée, vous permet d'installer une image en mode utilisateur d'Ubuntu et puis lancez Bash là-dessus. Cela offre une compatibilité à 100% avec Ubuntu pour le débogage et l'exécution de scripts Bash, mais cette configuration est complètement autonome de Windows et vous ne pouvez pas utiliser de scripts Bash pour interagir avec les fonctionnalités de Windows (telles que les processus et les API) sauf pour un accès limité aux fichiers via la fonctionnalité DrvFS .
la source
mingw32
répertoire qui contient essentiellement MSYS. Donc Git pour Windows est MinGW qui inclut Git (son facultatif dans le programme d'installation MSYS) avec un programme d'installation "plus agréable": superuser.com/a/1362301/10942La meilleure option que j'ai pu trouver est Git Windows Il suffit de l'installer, puis de faire un clic droit et de cliquer sur "Git Bash Here" cela ouvrira une fenêtre bash
Cela ouvrira une fenêtre bash comme celle-ci:
et les commandes linux fonctionnent ...
J'ai essayé les commandes 'sh', 'vi', 'ssh', 'curl', etc ...
la source
Si vous recherchez quelque chose d'un peu plus natif, vous pouvez utiliser getGnuWin32 pour installer tous les outils de ligne de commande Unix qui ont été portés. Cela plus winBash vous donne la plupart d'un environnement Unix de travail. Ajoutez console2 pour un meilleur émulateur de terminal et vous ne pourrez presque pas le dire sous Windows!
Cygwin est une meilleure boîte à outils dans l'ensemble, mais je me suis retrouvé à rencontrer des problèmes de surprise en raison du fossé entre celui-ci et Windows. Aucune de ces solutions n'est cependant aussi bonne qu'un système Linux natif.
Vous voudrez peut-être envisager d'utiliser virtualbox pour créer une machine virtuelle Linux avec la distribution de votre choix. Configurez-le pour partager un dossier avec le système d'exploitation hôte, et vous pouvez utiliser un véritable environnement de développement Linux et partager avec Windows. Faites juste attention à ces marqueurs EOL, ils vous attrapent à chaque fois.
la source
Meilleure option? Prise en charge de Windows 10. Native Bash!
la source
cbwin
problème avec ... mais c'est déjà trop compliqué pour une solution de contournement).Vous pouvez toujours installer Cygwin pour exécuter un shell Unix sous Windows. J'ai beaucoup utilisé Cygwin avec Windows XP.
la source
Après avoir installé git-extendions ( https://code.google.com/p/gitextensions/ ), vous pouvez exécuter le fichier .sh à partir de l'invite de commande. (Non ./script.sh requis, exécutez-le simplement comme un fichier bat / cmd) Ou vous pouvez les exécuter dans un environnement bash "complet" en utilisant le shell bash MinGW Git.
Je ne suis pas un grand fan de Cygwin (oui je suis sûr que c'est vraiment puissant), donc exécuter des scripts bash sur Windows sans avoir à l'installer parfait pour moi.
la source
bash
partir d'une instance PowerShell, échoué, installé des extensions git et réessayé et cela a fonctionné pour moi.Pour fonctionner en mode natif, vous devrez probablement utiliser Cygwin (dont je ne peux pas me passer lors de l'utilisation de Windows). Donc dès le départ, +1 pour Cygwin. N'importe quoi d'autre serait barbare.
CEPENDANT, cela étant dit, j'ai récemment commencé à utiliser une combinaison d'utilitaires pour PORTER facilement des scripts Bash vers Windows afin que mes collègues anti-Linux puissent facilement exécuter des tâches complexes qui sont mieux gérées par les utilitaires GNU.
Je peux généralement porter un script Bash vers Batch en très peu de temps en ouvrant le script d'origine dans un volet et en écrivant un fichier Batch dans l'autre volet. Les outils que j'utilise sont les suivants:
Je préfère UnxUtils à GnuWin32 parce que [quelqu'un, s'il vous plaît, corrigez-moi si je me trompe] Les utilitaires GnuWin doivent normalement être installés, alors que UnxUtils sont des binaires autonomes qui fonctionnent tout simplement.
Cependant, les CoreUtils n'incluent pas certains utilitaires * NIX familiers tels que cURL, qui est également disponible pour Windows (curl.haxx.se/download.html).
Je crée un dossier pour les projets, et toujours SET PATH =. dans le fichier .bat afin qu'aucune autre commande que les commandes shell CMD de base ne soit référencée (ainsi que les UnxUtils particuliers requis dans le dossier du projet pour que le script Batch fonctionne comme prévu).
Ensuite, je copie les fichiers CoreUtils .exe nécessaires dans le dossier du projet et je les référence dans le fichier .bat tel que ". \ Curl.exe -s google.com", etc.
Le programme Bat2Exe est l'endroit où la magie opère. Une fois votre fichier Batch terminé et testé avec succès, lancez Bat2Exe.exe et spécifiez le chemin d'accès au dossier du projet. Bat2Exe créera ensuite un binaire Windows contenant tous les fichiers de ce dossier spécifique, et utilisera le premier .bat qu'il rencontrera pour utiliser comme exécutable principal. Vous pouvez même inclure un fichier .ico à utiliser comme icône pour le fichier .exe final généré.
J'ai essayé quelques-uns de ces types de programmes et de nombreux binaires générés sont signalés comme des logiciels malveillants, mais la version de Bat2Exe que j'ai référencée fonctionne parfaitement et les fichiers .exe générés sont complètement nettoyés.
L'exécutable résultant peut être exécuté de manière interactive en double-cliquant, ou exécuté à partir de la ligne de commande avec des paramètres, etc., tout comme un fichier Batch normal, sauf que vous pourrez utiliser les fonctionnalités de nombreux outils que vous utiliserez normalement à Bash.
Je me rends compte que cela devient assez long, mais si je peux m'écarter un peu, j'ai également écrit un script Batch que j'appelle PortaBashy que mes collègues peuvent lancer à partir d'un partage réseau contenant une installation Cygwin portable. Il définit ensuite la variable% PATH% sur le format normal * NIX (/ usr / bin: / usr / sbin: / bin: / sbin), etc. et peut soit se lancer dans le shell Bash lui-même, soit lancer le plus puissant et joli émulateur de terminal MinTTY.
Il existe toujours de nombreuses façons d'accomplir ce que vous essayez de faire; il s'agit simplement de combiner les bons outils pour le travail, et cela se résume souvent à des préférences personnelles.
la source
Il y a une autre possibilité théorique de le faire: les versions professionnelles de Windows ont un support POSIX intégré, donc bash aurait pu être compilé pour Windows de manière native.
Dommage, mais je n'ai toujours pas trouvé de compilation moi-même ...
la source