我使用的是 Windows 10 计算机,启用/配置了适用于 Linux 的 Windows 子系统 (Ubuntu)。为了解释我的问题,让我向您展示两种情况:
场景一:
- 我开始
cmd.exe
提示 - 我
bash
在cmd.exe
提示符下运行 - (内部
bash
)我运行一个给定的命令,dwiextract
在我的例子中调用(来自神经成像分析软件包)
工作正常表明软件包安装成功。
场景2:
- 我开始
cmd.exe
提示 - 我尝试使用以下语法将完全相同的命令直接传递给
bash
from :cmd.exe
bash -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