visualStudioコードからWindowsBashを実行タスクとして実行するにはどうすればよいですか?
これを行うためのtasks.json
での私の多くの試みのいくつかを次に示します。
{
"version": "0.1.0",
"command": "cmd",
"isShellCommand": true,
"args": [ "RunShellScript.bat" ],
"showOutput": "always"
}
RunShellScript.batには次の行しかありません:bash myShellScript.sh
。 cmdを最初から開いてその行を入力すると、実行されます。また、ファイルをダブルクリックするだけでも完全に実行されます。ただし、VSCodeから起動すると、この出力は終了するまでハングします。
試行番号2:
{
"version": "0.1.0",
"command": "cmd",
"isShellCommand": true,
"args": [ "bash myShellScript.sh" ],
"showOutput": "always"
}
上記のように、これもハングします。
試行番号3:
{
"version": "0.1.0",
"command": "C:/Windows/System32/bash",
"isShellCommand": false,
"args": [ "myShellScript.sh" ],
"showOutput": "always"
}
これは私に与えます:
Failed to launch external program C:/Windows/System32/bash myShellScript.sh
spawn C:/Windows/System32/bash ENOENT
また、これらのケースのいくつかでは、"isShellCommand"
変数をtrueとfalseに設定して実験しましたが、役に立ちませんでした。
誰かがこれを行う方法を知っていますか?
私も同じことができる方法を探していました。
andlrc-私はあなたの2つのオプションを試しましたが、どちらもうまくいかないようです。問題は、Visual StudioCodeがbashを実行するコンテキストでbashが認識されないことにあるようです。私はさまざまなアプローチを試しました。
何かがうまくいったら、私は努力を続けて投稿します。
編集:了解しました。この男性の功績- https://aigeec.com/using-windows-10-anniversary-bash-with-visual-studio-code/
要約すると、私は64ビットオペレーティングシステムを使用しているということです。つまり、bash.exeはC:\ Windows\System32にあります。ブログ投稿が示唆しているようにbash.exeをSysWOW64にコピーすると、Visual Studio Codeのデフォルトのビルドアクション(Ctrl + Shift + B)が期待どおりに実行されます。
これは少し厄介な回避策のようです-MSFTで提起して、それについて何かできることがあるかどうかを確認する価値があるでしょう。
編集:要求された私のtasks.jsonは次のとおりです:
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "bash",
"isShellCommand": true,
"args": [ "./gulp.sh" ],
"showOutput": "always",
"tasks": [{
"taskName": "scripts",
"isBuildCommand": true,
"problemMatcher": "$gulp-tsc",
"isWatching": true
}]
}
gulp.shにはコマンドが1つだけ含まれています。 'gulp' :-)しかし、基本的には好きなものをそこに入れることができます。タスクのさまざまなテープに対応するために、いくつかの.shスクリプトを使用できると思います
Sysnativeの使用に応じて、残念ながらそれを理解していないようで、ビルドタスクは実行されません。
新しくインストールされたbash
がインストールされているWindows10マシンでは、これは問題なく機能します。
{
"version": "0.1.0",
"command": "bash",
"isShellCommand": true,
"args": [ "shellscript.sh" ],
"showOutput": "always"
}
command
としてのshellscript.shのShebangバージョンは私には機能しません。
bash -c "<command>"
を使用して、任意のコマンドを実行することもできます。
{
"version": "0.1.0",
"command": "bash",
"isShellCommand": true,
"args": ["-c", "echo \"test\""],
"showOutput": "always"
}
試してください:
{
"version": "0.1.0",
"command": "bash",
"isShellCommand": true,
"args": [ "myShellScript.sh" ],
"showOutput": "always"
}
または、ファイルにシバンを追加することもできます。
#!/bin/bash
次に、スクリプトへのパスを記述します。
{
"version": "0.1.0",
"command": "/path/to/script.sh",
"isShellCommand": true,
"args": [],
"showOutput": "always"
}