2011-12-07 23 views
6

अगर मैं ऐसा तरह टर्म के साथ एक कमांड फोन (मेरे मामले किसी अन्य लिपि में):मैं आदेश का निकास कोड कैसे प्राप्त करूं और xterm नहीं?

xterm -e sh second.sh 

टर्म रिटर्न के बाद $? में मूल्य टर्म और नहीं मेरी स्क्रिप्ट (आमतौर पर मुझे 0 के लिए) के निकास स्थिति कोड है ।

क्या मेरी स्क्रिप्ट का एक्जिट स्टेटस कोड प्राप्त करने के लिए वैसे भी है?

statusfile=$(mktemp) 
xterm -e sh -c 'yourcommand; echo $? > '$statusfile 
status=$(cat $statusfile) 
rm $statusfile 

yourcommand के निकास स्थिति चर status में है:

उत्तर

5

आप कुछ इस तरह कर सकता है।

+2

+1। ऐसा लगता है कि 'xterm' कमांड की स्थिति सीधे रिपोर्ट करने का कोई तरीका नहीं है। –

+0

परीक्षण करने के लिए, मैंने एक स्क्रिप्ट बनाई है जो सिर्फ 'बाहर निकलें' है। मैं फिर आपके कमांड के बजाय इस स्क्रिप्ट को कॉल करता हूं। बाहर निकलें कोड हमेशा 127 होता है। अगर मैं आपके कमांड को प्रतिस्थापित करता हूं, तो कहें, '10 सोएं' तो बाहर निकलने वाला कोड सही है: एस – neildeadman

+0

मुझे अनदेखा करें ... यह काम कर रहा है .. धन्यवाद! – neildeadman