Score:0

ทุบตี: บรรทัดที่ 146: [: หายไป `] - Gitlab CI/CD

ธง cn

พวกฉันจึงพยายามทำ if คำสั่งนี้ในส่วนสคริปต์ของ CI / CD ของฉัน แต่มันให้ a ทุบตี: บรรทัด 146: [: ขาดหายไป ]` เกิดข้อผิดพลาดซึ่งฉันไม่แน่ใจว่าทำไมจึงเกิดขึ้น

สคริปต์ของฉันใน CI/CD:

สคริปต์:
        -->
            ถ้า [ $CI_COMMIT_TAG && $CI_COMMIT_REF_NAME =~ /^v/ ]; แล้ว 
                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 $ อินสแตนซ์ -e การผลิต";
                echo "ข้างใน";
            อื่น 
                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 $ อินสแตนซ์ -e การพัฒนา"; 
                echo "อื่นๆ";
            ไฟ

ข้อผิดพลาดไปป์ไลน์:

$ ถ้า [ $CI_COMMIT_TAG && $CI_COMMIT_REF_NAME =~ /^v/ ]; จากนั้น # ยุบคำสั่งหลายบรรทัด
/usr/bin/bash: บรรทัดที่ 146: [: ไม่มี `]'
Lorenz Keel avatar
gr flag
ควรเป็น `if [ condition1 ] && [ condition2 ]; จากนั้น command1; อื่น command2; ฟิค ดังนั้นคุณควรใส่ `]` ก่อน `&&` และตรวจสอบตัวแปร `$CI_COMMIT_TAG` อย่างสม่ำเสมอ
bac0n avatar
cn flag
นี่ไม่ใช่สิ่งที่ผิด `[ ]` เดี่ยวไม่รองรับตัวดำเนินการไบนารี `=~` คุณต้องใช้ `[[ ]]` เป็นเรื่องปกติที่จะใช้ `[[ $a && $b =~ pattern ]]` และควรลบ `/ /` หากไม่ได้เป็นส่วนหนึ่งของรูปแบบ
DeadSec avatar
cn flag
@bac0n ใช้งานได้ :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา