找不到在 shell 脚本中运行的命令

P.B*_*key 3 bash windows

我在 Windows 上运行 git-bash。我觉得我面临的问题更像是一个面向 NIX 的问题,而不是 Windows。我有一个shell脚本:

编译文件

myProject="../myProject/"
build="gulp build"

cd "${myProject}"
pwd
"${build}"
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本时出现错误

吞咽构建:找不到命令

当我直接在 shell 中运行“gulp build”时,手动运行这些相同的命令然后一切正常。我尝试通过以下方式执行脚本:

. build.sh 只是 build.sh

无论哪种方式都相同的错误。如何运行可以访问 gulp/npm 的脚本?为什么即使在我获取脚本时也会失败?

mik*_*mik 11

Quoting"${build}"可以防止分词,因此它在此处与 write "gulp build"(带引号)具有相同的效果,后者将搜索gulp build名称中带有空格的可执行文件;而不是 write gulp build,它gulp使用build参数执行。

最后,脚本的最后一行应该是:

${build}
Run Code Online (Sandbox Code Playgroud)


tec*_*raf 7

不要引用"${build}"。正如它在这种情况下所期望的那样gulp build命令(里面有一个空格)并且正确地报告这样的命令不存在。

只需通过 执行${build}。然后 shell 会将其视为命令和参数。

myProject="../myProject/"
build="gulp build"

cd "${myProject}"
pwd
${build}
Run Code Online (Sandbox Code Playgroud)