将命令从 cmd.exe (WSL) 传递给 bash 不起作用

fne*_*ery 9 bash ubuntu windows windows-subsystem-for-linux

我在 Windows 10 机器上,启用/配置了适用于 Linux 的 Windows 子系统 (Ubuntu)。为了解释我的问题,让我向您展示两种情况:

场景一:

  1. 我开始cmd.exe提示
  2. bashcmd.exe提示符下运行
  3. (内部bash)我运行给定的命令,dwiextract在我的情况下调用(来自神经影像分析软件包)

工作正常,表明软件包安装成功。

场景2:

  1. 我开始cmd.exe提示
  2. 我尝试使用以下语法将完全相同的命令直接传递给bashfrom cmd.exebash -c dwiextract

我明白了command not found

(注意我在bash -c 这里了解到并在其他场合成功使用了它。)

下图准确显示了我所做的:

example_diagram

我的问题:这两种情况不应该是等价的。为什么方案 1 有效而方案 2 无效?

非常感谢。

fne*_*ery 9

将 bash 作为交互式 shell(使用-i选项)运行解决了我的问题。

即:bash -c -i <command>

  • ...因为`$PATH` 在两个shell 中不同,启动交互式shell 会强制`bash` 读取设置了`PATH` 的`bashrc` 文件。 (3认同)