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

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

我使用的是 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 这里并在其他场合成功使用过。)

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

示例图

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

非常感谢。

答案1

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

那是:bash -c -i <command>

答案2

除此之外... bash -c -i "..."这对我来说效果很好

wsl -d Debian -u myname -e dwiextract

也带参数

wsl -d Debian -u myname -e uname -a

相关内容