मेरा वास्तव में हाल ही में एक समान प्रश्न था (हालांकि मैंने पोस्ट नहीं किया था, मैं इसके चारों ओर हो गया था), और, जो मैं देख सकता हूं, उससे ऐसा लगता है कि कमांड के पहले सेट + ई का उपयोग करना और उसके बाद सेट-एल सबसे काम करता है। यहां एक उदाहरण है, कमांड की प्रतिक्रिया को हथियाने और त्रुटि को दूर फेंकने नहीं देना।
#!/bin/sh
args=""
for argcol in $*
do
args="${args} ${argcol}"
done
fortunevar=""
fortfail=""
{
set +e
fortunevar=`fortune $args`
fortfail=$?
set -e
} &> /dev/null
if [ $fortfail == 0 ]
then
echo ${fortunevar}
say ${fortunevar}
else
echo misfortune: an illegal option was detected!
echo misfortune: usage: misfortune [-afilosw] [-m pattern][ [#%] file/directory/all]
fi
यह 'भाग्य' के उत्पादन को पकड़ता है, इसकी निकास स्थिति और गूँज की जाँच करता है और कहता है। मुझे लगता है कि यह वही है जो आप के लिए पूछ रहे थे, या कम से कम कुछ इसी तरह का? वैसे भी, उम्मीद है कि यह मदद करता है।