我在 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}