我有一个看起来像这样的目录结构
|- .ci
|- node_project
|- scripts
|- terraform
在scripts目录中,我想为build.sh
,verify.sh
和deploy.sh
之类的文件添加包装器脚本,但是,如果我们考虑build.sh
,则内容可能类似于< / p>
#!/usr/bin/env bash
cd ../node_project
npm run build
只要您位于scripts
目录中,它就可以使用。
我该如何创建一个脚本,该脚本也可以在项目根目录中以scripts/build.sh
调用,甚至从项目外部以<some random path>/scripts/build.sh
调用?
答案 0 :(得分:1)
${BASH_SOURCE[0]}
具有当前脚本的名称。获取脚本的目录,然后从那里开始。
cd "$(dirname "${BASH_SOURCE[0]}")"
cd ../node_project
npm run build
注意。如果用户通过任何相对路径,他们将无法再正确解析。