วิธีการวนซ้ำ 3 ครั้งในสคริปต์ทุบตีเมื่อนักเทียบท่าดันล้มเหลว?


9

ฉันมีสคริปต์ทุบตีซึ่งเพียงนักเทียบท่าดันภาพ:

docker push $CONTAINER_IMAGE:latest

ฉันต้องการวนซ้ำ 3 ครั้งเมื่อสิ่งนี้ล้มเหลว ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


22

ใช้for-loopและ&& break:

for n in {1..3}; do
    docker push $CONTAINER_IMAGE:latest && break;
done

breakออกจากลูป แต่จะทำงานก็ต่อเมื่อdocker pushสำเร็จ หากdocker pushล้มเหลวมันจะออกโดยมีข้อผิดพลาดและลูปจะดำเนินการต่อ


4
เทคนิค OP ต้องการให้วงสามครั้งเมื่อมันล้มเหลว ดังนั้นตัวนับลูปไม่ควรเป็น4 ?
RonJohn

5

คุณยังสามารถใช้:

for n in {1..3}; do
     if docker push $CONTAINER_IMAGE:latest  
     then 
          break;
     fi
done

thenคำสั่งจะถูกป้อนเฉพาะในกรณีที่คำสั่งนักเทียบท่าประสบความสำเร็จ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.