作为我的CircleCi管道的一部分,我想执行以下命令。 我的想法是断言文件是否存在,如果存在,那么我想再执行一些命令。在我的初始测试期间,文件不存在,我希望整个命令返回0.任何关于错误的线索?
command: |
[[ -e "stacks/docker-compose-${CIRCLE_BRANC}.yml" ]]
&& set -a && source /tmp/workspace/${CIRCLE_BRANCH}.env && docker-compose -f /tmp/workspace/docker-stack.yml -f "stacks/docker-compose-${CIRCLE_BRANC}.yml" config > /tmp/workspace/docker-stack.yml
答案 0 :(得分:1)
如果文件不存在,那么是的,[[ -e "..." ]]
测试将返回1(因为它失败了)。
如果退出状态为1
会破坏您的管道,您可以重写命令行,执行以下操作:
[[ ! -e "stacks/docker-compose-${CIRCLE_BRANC}.yml" ]]
|| { set -a && source /tmp/workspace/${CIRCLE_BRANCH}.env && docker-compose -f /tmp/workspace/docker-stack.yml -f "stacks/docker-compose-${CIRCLE_BRANC}.yml" config > /tmp/workspace/docker-stack.yml; }
这里,逻辑与原始脚本相反:
[[ ! -e "stacks/docker-compose-${CIRCLE_BRANC}.yml" ]]
:如果您的文件不存在,我们退出退出代码0