我安装了 Windows Subsystem for Linux (WSL),以便在 Windows 上的 Ubuntu 上使用 Bash(以下简称“Bash”)。cmd.exe
我可以在其中运行bash -c gcc --version
,也可以cmd -k bash -c gcc --version
从开始菜单使用。但是,我注意到我无法从第三方应用程序(例如 Sublime Text 或 Atom)运行相同的命令。
考虑以下 Sublime Text 的构建系统,暂时忽略它不会构建任何东西的事实:
{
"cmd": [ "bash", "-c" "gcc", "--version" ],
"working_dir": "${project_path:${folder}}",
"selector" : "source.c"
}
运行 build 命令将导致 Error: 0x80070057
。启用旧模式后cmd.exe
,错误显示为Unsupported console settings. In order to use this feature the legacy mode must be disabled.
我已经尝试过其他一些方法让它发挥作用:
使用绝对路径
bash.exe
,例如%SystemRoot%\System32\bash.exe
在构建工具中运行批处理文件(内容:)
bash -c gcc --version
。值得注意的是,批处理文件在从以下位置运行时有效:cmd.exe
将构建命令更改为
[ "cmd", "/k", "bash", "-c" "gcc", "--version"]
添加
"shell": true
到我的构建文件
有时,错误会变为“[bash] 不被识别为内部或外部命令”,即使C:\Windows\System32
它在我的路径中。
Bash 只能从 启动,这有什么限制吗cmd.exe
? 有什么解决方法可以让我batch
从 Sublime Text 启动吗?
答案1
答案2
我没有您的环境来测试这一点,但我建议将“bash”替换为“bash.exe”。Windows cmd.exe 命令需要 .exe 后缀才能执行 bash.exe 命令。WSL 命令 /usr/bin/bash 与 Windows 命令 C:\Windows\System32\bash.exe 不是同一个命令。