在WSL环境中使用VSCode任务,尝试运行shell脚本时终端始终退出

时间:2019-04-25 22:04:11

标签: visual-studio-code windows-subsystem-for-linux vscode-tasks

注意 我不得不删除该帖子的两块内容,因为堆栈溢出会在不包含该内容时将其解释为代码,这也不会让我发布,我将对该帖子的外观进行截图并将其发布here。改为阅读此内容。

摘要

我最终试图学习如何使用VSCode任务,因此我从here复制了第一个任务示例,并在scripts / test.sh中创建了一个仅包含“ echo foo”的shell脚本。我还注释掉了Windows备用脚本,因为我只使用WSL / Bash。每当我运行任务时,都会收到错误消息“终端进程终止,退出代码为1”。

测试

我进行了各种测试,但我不知道为什么这不起作用。

证明任务在正确的目录中和WSL中

首先,我认为任务可能不在WSL中运行,或者目录不同步,所以我更改了命令以查看会发生什么。

首先,我将其更改为:

"command": "pwd",

,输出为“ / mnt / f /.../.../ tmp / tmp.1BitOIA78E”(...用于某些任意路径),因此很明显,我得出结论:我在WSL上运行,在右侧路径。

证明脚本是可执行的

接下来我想,也许我尝试运行的脚本不可执行或有某种影响,所以我将命令更改为:

"command": "stat ./scripts/test.sh",

我得到以下输出,该文件存在,它是可执行的,可以通过“ ./scripts/test.sh”从Task设置为构建的任何目录中访问

我通过键入ctrl-shift-P打开菜单来运行任务,选择“运行任务”,然后选择“我的第一个任务”。

注意:我认为这不是设置问题。没有工作区设置设置(因为这只是我的测试),以防万一,您可以找到我的当前用户设置here,该用户设置是我在发布此设置之前立即更新的。

期望

我想要的是:

  • 有人告诉我启动时如何访问shell的stderr和stdout日志,这样我就可以获得有关此情况发生的实际有用信息。
  • 有人告诉我为什么我可以在任务外运行脚本,但是在任务内完全失败。

还要注意的是脚本不是这里的问题。将其完全保留为空白,不会阻止终端直接崩溃。

0 个答案:

没有答案