我有一个bash脚本plan.sh
,它在管道执行期间执行多次。
plan:
before_script:
- chmod +x ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh
script:
- cd ${FOLDER1}
- ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh
- cd ${FOLDER2}
- ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh
- cd ${FOLDER3}
- ${CI_PROJECT_DIR}/gitlab/deploy/plan/plan.sh
我想只使用文件名而不是完整路径来执行脚本。所以我设置了PATH环境变量。
plan:
before_script:
- export PATH=${CI_PROJECT_DIR}/gitlab/deploy/plan:$PATH
- chmod +x plan.sh
script:
- cd ${FOLDER1}
- plan.sh
- cd ${FOLDER2}
- plan.sh
- cd ${FOLDER3}
- plan.sh
但是,这会引发错误
$chmod + x网址plan.sh
chmod:无法访问"plan.sh":无此文件或目录
1条答案
按热度按时间gxwragnw1#
PATH
用于在仅按名称执行二进制文件时查找它们的位置。PATH
* 不 * 用于解析传递给另一个二进制文件的任意文件参数。对于chmod
,这意味着您仍然必须首先提供正确目录的完整路径(相对或绝对)或cd
。下面是另一个不起作用的例子: