未发现命令在 shell 脚本中运行

未发现命令在 shell 脚本中运行

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

构建.sh

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

cd "${myProject}"
pwd
"${build}"

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

gulp build:找不到命令

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

. build.sh并且只是build.sh

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

答案1

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

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

${build}

答案2

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

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

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

cd "${myProject}"
pwd
${build}

相关内容