दिलचस्प पोस्ट
एंड्रॉइड वेबव्यू – वेबपेज डिवाइस स्क्रीन पर फ़िट होना चाहिए क्या मैं एक एंड्रॉइड डिवाइस की एलईडी तीव्रता बदल सकता हूँ? `संरचना एक्स typedef` बनाम` typedef struct एक्स 'का क्या मतलब है? JQuery के साथ गतिशील रूप से इनपुट फ़ील्ड जोड़ें / निकालें प्रोग्रामेटिक रूप से एक config-file को एनक्रिप्ट करते हुए एनक्रिप्ट करते हैं कोशिश / पकड़ो + का प्रयोग, सही वाक्यविन्यास HTML नेस्टेड सूची बनाने का उचित तरीका है? नहीं में मौजूदा नहीं बनाम स्प्रिंग-बूट में ऑर्डर करें जीगप्लॉट में geom_point (scale_colour_manual) में भरें और सीमा रंग गैर ऑब्जेक्ट MySQLi परिणाम की संपत्ति प्राप्त करने की कोशिश कर रहा है IOS 5 में UITabBarItem में पाठ का रंग कैसे बदल सकता है एंड्रॉइड के लिए चौड़ाई और ऊंचाई कैसे प्राप्त करें I मैं Django ModelForm में फ़ील्ड कैसे कर सकता हूँ? क्या जावा कस्टम संग्रह कार्यान्वयन के लिए कोई ट्रीट्यूइट है?

उत्तरदायी शैल मॉड्यूल त्रुटि देता है जब grep परिणाम खाली हैं

मैं एक विशिष्ट स्ट्रिंग खोजने के लिए और एक चर में इसे स्टोर करने के लिए अंसमीस के शैल मॉड्यूल का उपयोग कर रहा हूं। लेकिन अगर grep को कुछ भी नहीं मिला तो मुझे एक त्रुटि मिल रही है

उदाहरण:

- name: Get the http_status shell: grep "http_status=" /var/httpd.txt register: cmdln check_mode: no 

जब मैं इस Ansible playbook चलाता हूं, अगर http_status स्ट्रिंग नहीं है, तो प्लेबुक बंद है मैं stderr नहीं मिल रहा है

स्ट्रिंग नहीं मिल रही है, भले ही मैं बिना किसी रुकावट के उत्तरदायी दौड़ कैसे कर सकता हूं?

Solutions Collecting From Web of "उत्तरदायी शैल मॉड्यूल त्रुटि देता है जब grep परिणाम खाली हैं"

जैसा आपने देखा, उत्तरदाता बंद करने के लिए निष्पादन बंद करेगा अगर grep निकास कोड शून्य नहीं है। आप ignore_errors साथ इसे अनदेखा कर सकते हैं।

एक और चाल cat लिए grep आउटपुट पाइप है इसलिए cat निकास कोड हमेशा शून्य होगा क्योंकि इसके stdin grep का stdout है। यह काम करता है अगर कोई मैच होता है और जब भी कोई मैच नहीं होता है। कोशिश करो।

 - name: Get the http_status shell: grep "http_status=" /var/httpd.txt | cat register: cmdln check_mode: no 

grep डिजाइन द्वारा रिटर्न कोड 1 अगर दिए गए स्ट्रिंग नहीं मिला। डिज़ाइन द्वारा जवाब योग्य निष्पादन रोकता है यदि रिटर्न कोड 0 से अलग है। आपका सिस्टम ठीक से काम कर रहा है।

इस त्रुटि पर प्लेबुक निष्पादन को रोकने से जवाबदेह को रोकने के लिए, आप निम्न कर सकते हैं:

  • ignore_errors: yes जोड़ें ignore_errors: yes कार्य करने के लिए पैरामीटर

  • उपयोग failed_when: पैरामीटर उचित स्थिति के साथ

क्योंकि grep अपवाद के लिए त्रुटि कोड 2 देता है, दूसरी विधि अधिक उपयुक्त लगता है, इसलिए:

 - name: Get the http_status shell: grep "http_status=" /var/httpd.txt register: cmdln failed_when: "cmdln.rc == 2" check_mode: no 

आप changed_when: false जोड़ने पर भी विचार कर सकते हैं changed_when: false ताकि कार्य को हर बार "बदला" के रूप में रिपोर्ट नहीं किया जाएगा

Playbooks दस्तावेज़ में त्रुटि हैंडलिंग में सभी विकल्पों का वर्णन किया गया है।