Windows Bash et de Code de Visual Studio: Comment puis-je lancer bash comme une exécution de la tâche?
comment puis-je exécuter le Windows Bash à partir de Visual Studio code d'exécuter la tâche?
Voici quelques unes de mes nombreuses tentatives de tasks.json
pour ce faire.
{
"version": "0.1.0",
"command": "cmd",
"isShellCommand": true,
"args": [ "RunShellScript.bat" ],
"showOutput": "always"
}
RunShellScript.bat a uniquement cette ligne: bash myShellScript.sh
. Qui, si vous venez d'ouvrir cmd dans le menu démarrer, et tapez cette ligne, il va exécuter. Il fonctionne aussi parfaitement si vous il suffit de double-cliquer sur le fichier. Cependant, lors du lancement d'VSCode, cette sortie se bloque jusqu'à ce que je le résilier.
Tentative numéro 2:
{
"version": "0.1.0",
"command": "cmd",
"isShellCommand": true,
"args": [ "bash myShellScript.sh" ],
"showOutput": "always"
}
Cela aussi se bloque, comme ci-dessus.
Tentative numéro 3:
{
"version": "0.1.0",
"command": "C:/Windows/System32/bash",
"isShellCommand": false,
"args": [ "myShellScript.sh" ],
"showOutput": "always"
}
Cela me donne:
Failed to launch external program C:/Windows/System32/bash myShellScript.sh
spawn C:/Windows/System32/bash ENOENT
Ive a également expérimenté avec réglage de la "isShellCommand"
variable à true et false dans certains de ces cas, mais en vain.
Personne ne sait comment faire cela?
OriginalL'auteur atzero | 2016-05-16
Vous devez vous connecter pour publier un commentaire.
Moi aussi j'ai été à la recherche pour voir comment je pouvais faire la même chose.
andlrc - j'ai essayé vos deux options et aucun d'entre eux semblent faire l'affaire. Le problème semble être que bash n'est pas reconnue quel que soit le contexte le Code de Visual Studio s'exécute. J'ai essayé différentes approches:
Je vais continuer à essayer et renvoyer si je reçois quelque chose de travail.
Modifier: je l'Ai. De crédit de cet homme - https://aigeec.com/using-windows-10-anniversary-bash-with-visual-studio-code/
En résumé, ce qui se résume, c'est que je suis sur une version 64 bits du système d'exploitation qui signifie bash.exe est situé dans C:\Windows\System32. Une fois que j'avais copié bash.exe dans SysWOW64 comme le post du blog l'indique, l'action de génération par défaut (Ctrl+Maj+B), du Code de Visual Studio fonctionne comme vous le souhaitez.
Cela semble un peu hacky solution - c'est probablement la peine de discuter avec MSFT pour voir si il y a quelque chose que nous pouvons faire à ce sujet.
Modifier: Voici mes tâches.json comme demandé:
}
gulp.sh ne contient qu'une seule commande; "gulp": -) mais vous pourriez essentiellement de mettre ce que vous voulez là-bas, je suppose que vous pourriez en avoir plusieurs .sh scripts pour couvrir les différentes bandes de tâches
En réponse à l'utilisation de Sysnative, malheureusement, il ne semble pas le comprendre et l'accumulation de la tâche ne s'exécute pas.
C:\Windows\sysnative\bash.exe
.Pourrais-tu éditer ton post pour y inclure les tâches.json ou de lancement.json-vous utilisé?
Mon soi-disant "solution" a, pour quelque raison que ce soit, cessé de fonctionner... "Enquête".
Jason: Voir le commentaire de @RossRidge: Vous avez besoin de changer votre "commande" appeler "c:\\Windows\\sysnative\\bash.exe"
Cela m'a beaucoup aidé. J'ai aussi ajouté "--login" pour les arguments de sorte que .bashrc serait exécutée dans l'ordre pour que mon environnement a été configuré correctement.
OriginalL'auteur Jason Dunbar
Sur mon Windows 10 machine qui a un fraîchement installé
bash
, cela fonctionne très bien pour moi:L'arborescence de la version de shellscript.sh comme
command
ne fonctionne pas pour moi.Vous pouvez également utiliser
bash -c "<command>"
pour exécuter une commande arbitraire:64 bits, nous allons passer à la discussion de github.
OriginalL'auteur Daniel Imms
Essayer:
Ou vous pouvez ajouter un shebang à votre fichier:
et puis écrire le chemin d'accès au script:
Mise à jour: Désolé mate ils ont tous deux ne fonctionne pas =/
OriginalL'auteur andlrc