जब तक कार्यक्रम गैर-शून्य कोड के साथ बाहर नहीं निकलता तब तक आउटपुट (stdout और stderr) को दबाने का सबसे अच्छा तरीका क्या है? मै सोच रहा हूँ:
quiet_success()
{
file=$(mktemp)
if ! "$@" > "$file" 2>&1; then
cat "$file"
fi
rm -f "$file"
}
और चलाओ quiet_success my_long_noisy_script.sh
लेकिन मुझे यकीन नहीं है कि अगर कोई बेहतर तरीका है। मुझे लगता है कि ऐसा कुछ और लोगों को करना होगा।
संदर्भ के लिए, मैं इसे अपनी क्रोन लिपियों में जोड़ना चाह रहा हूं ताकि मैं विफल होने पर सब कुछ ईमेल कर दूं, लेकिन अगर वे नहीं करते हैं तो नहीं।
हां, मैंने इसे प्रश्न में टाइप किया। आपके सुझाव पर अमल किया, और मैं मानता हूं, इसके लिए कमान जिम्मेदार होनी चाहिए , लेकिन अफसोस ...
—
dimo414
बस एक सिंटैक्स नोट: कमांड के चारों ओर कोष्ठक की कोई आवश्यकता नहीं है।
—
मैनटवर्क
sh
वाक्यविन्यास नहीं है, और आपका पुनर्निर्देशन आदेश पीछे की ओर है (> "$file" 2>&1
अधिक उद्धरणों का उपयोग और उपयोग करें)।