पहली असफल प्रक्रिया के बैश रिटर्न स्टैडर


0

मुझे कुछ कमांड्स चलाने की जरूरत है और अगर उनमें से कोई भी विफल रहता है तो मैं JSON को इसके साथ stderr आउटपुट देना चाहूंगा।

मेरी निम्नलिखित पंक्ति है:

OUT="$( (ssh internal "custom_script1" | custom_app1 2>&- | custom_script2) 2>&1)"

यदि पाइप लाइन टूटी हुई है, तो प्रत्येक कमांड अपने stderr पर लिखेगा और OUT में 2 लाइनें होंगी। मैं कैसे जान सकता हूं कि कौन सी कमांड विफलता का कारण बनती है और उस कमांड के स्टेटर को पकड़ती है।

मान लीजिए कि मैं आंतरिक में ssh करने में असमर्थ हूं, इसलिए मैं SSH स्टाडर को ही प्रिंट करना चाहता हूं:

{
  "state": "failed",
  "reason": "Permission denied (publickey,password,keyboard-interactive)."
}

जवाबों:


0

अगर मैंने इसे सही ढंग से समझा, तो बस वैश्विक 2 & gt;

$ OUT="$( (ssh internal "custom_script1" | cut -f 1 2>&- | cut -f 2 2>&1) )"
ssh: Could not resolve hostname internal: nodename nor servname provided, or not known
$ echo $OUT
$
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.