![bash:第 146 行:[: 缺少 `] - Gitlab CI/CD](https://linux22.com/image/943315/bash%EF%BC%9A%E7%AC%AC%20146%20%E8%A1%8C%EF%BC%9A%5B%3A%20%E7%BC%BA%E5%B0%91%20%60%5D%20-%20Gitlab%20CI%2FCD.png)
伙计们,所以我试图在我的 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/ ]];
应该可以解决问题。我认为这个警告没有任何问题,但修复它总是好的。