伙计们,所以我试图在我的 CI/CD 的脚本部分中创建这个 if 语句,但它给出了bash: line 146: [: missing
]` 错误,我不确定为什么会发生这种情况。
我在 CI/CD 中的脚本:
script:
- >
if [ $CI_COMMIT_TAG && $CI_COMMIT_REF_NAME =~ /^v/ ]; then
sshpass -e ssh -o StrictHostKeyChecking=no $DOCKER_SSH_USERNAME@$DOCKER_MACHINE "cd /home/$DOCKER_SSH_USERNAME && git clone $GIT_CLONE_URL && cd qcast-vosk-stt/ && chmod +x deploy.sh && ./deploy.sh -i $INSTANCES -e PRODUCTION";
echo "Inside";
else
sshpass -e ssh -o StrictHostKeyChecking=no $DOCKER_SSH_USERNAME@$DOCKER_MACHINE "cd /home/$DOCKER_SSH_USERNAME && git clone $GIT_CLONE_URL && cd qcast-vosk-stt/ && chmod +x deploy.sh && ./deploy.sh -i $INSTANCES -e DEVELOPMENT";
echo "Elsed";
fi
管道错误:
$ if [ $CI_COMMIT_TAG && $CI_COMMIT_REF_NAME =~ /^v/ ]; then # collapsed multi-line command
/usr/bin/bash: line 146: [: missing `]'
答案1
[[ $CI_COMMIT_TAG && $CI_COMMIT_REF_NAME =~ /^v/ ]];
应该可以解决问题。我认为这个警告没有任何问题,但修复它总是好的。