2012-08-23 28 views
5

मेरे पास एक स्क्रिप्ट है जिसमें मैं गलती से त्रुटि शर्तों के लिए रिटर्न कोड की जांच कर रहा हूं, ताकि मैं विफलता की स्थिति में जल्दी ही निरस्त हो सकूं। इस स्क्रिप्ट के एक चरण में एसएसएच और सूडो के माध्यम से किसी अन्य बॉक्स पर रूट के रूप में एक कमांड चलाना शामिल है।सुडो-रन प्रक्रिया से बाहर निकलने वाले कोड को कैप्चर करना

पर विचार करें:

ssh $HOST sudo $CMD 
echo $? 

ssh वापसी कोड वापस ठीक से गुजरता है, लेकिन फिर भी यदि $ अध्यक्ष एवं प्रबंध निदेशक एक अशून्य बाहर निकलें कोड लौटाता है, sudo अभी भी 0 रिटर्न आदेश चलाने के बाद।

मैं $ सीएमडी में रिटर्न कोड कैप्चर कैसे करूं? मैं एसएसएच के रिटर्न कोड के रूप में वापस लौटने के लिए बहुत आंशिक हूं, लेकिन अगर एक और आसान तरीका है जिसे $ सीएमडी के आउटपुट से भ्रमित नहीं किया जा सकता है, तो मैं सभी कान हूं।

उत्तर

4

जैसा कि यह पता चला है, सूडो रिटर्न कोड को ठीक से पास कर रहा है। मेरा टेस्ट केस बहुत अधिक $ ओवरराइट कर रहा था? बाद में निष्पादन या सशर्त परीक्षण के साथ। मैं आमतौर पर $ संरक्षित करने के लिए नामित चर का उपयोग करता हूं? ऐसी चीजों से बचने के लिए, लेकिन वहां आप हैं।

+0

यहां वही - मैं परिणाम गूंज रहा था, इसलिए एसएसएच स्थिति कोड को सही ढंग से पास कर रहा था, गूंज 0 लौटा रहा था। –