बैश स्क्रिप्ट में 3 बार लूप कैसे करें जब डॉक पुश विफल रहता है?


9

मेरे पास एक बैश स्क्रिप्ट है जो बस docker की एक छवि को धक्का देती है:

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
तकनीकी रूप से, ओपी चाहता है कि वह तीन बार लूप करे जब वह विफल हो जाए । तो, लूप काउंटर 4 नहीं होना चाहिए ?
रॉनजॉन

5

आप भी उपयोग कर सकते हैं :

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

thenबयान को केवल तभी डोकर आदेश सफल दर्ज किया जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.