लाइन-ब्रेक को संरक्षित करते हुए एक और स्क्रिप्ट का आउटपुट प्राप्त करना


0

मैं एक bash स्क्रिप्ट से C प्रोग्राम चला रहा हूं और आउटपुट की अंतिम पंक्ति और एक्जिट कोड पर कब्जा करना चाहता हूं। यह जो मैंने किया है:

echo  output=$(echo $op | ./compute)
echo  $output
echo "$output"

दोनों आउटपुट लाइन ब्रेक को संरक्षित नहीं करते हैं। मैंने उपयोग करने के बारे में सोचा tail -1लेकिन इससे निकास कोड बदल जाता है जो मेरे लिए महत्वपूर्ण है।

मैं क्या गलत कर रहा हूं?

जवाबों:


0

आप $?चर का उपयोग कर सकते हैं , जो अंतिम कमांड रन के रिटर्न मूल्य को संग्रहीत करता है।

इसके अलावा, लाइन ब्रेक को संरक्षित करने के लिए, आपको उद्धरण ( "") का उपयोग करना होगा जब आप आउटपुट पढ़ रहे हों, उसके बाद नहीं:

# Save your C program's whole output (with newlines)
output="$(echo $op | ./compute)"
# Print exit code
echo $?
# Print the last line of your program's output
echo $(echo "$output" | tail -1)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.