2013-10-17 3 views
9

मेरे पास एक स्क्रिप्ट runonce.sh है जो cron के माध्यम से एक और स्क्रिप्ट setup.sh कॉल करता है। हम इस मामले को आदर्श मामले मानते हैं जहां "टीईआरएम पर्यावरण चर सेट नहीं है।" runonce.sh स्क्रिप्ट के आउटपुट में देखा जाता है।"TERM पर्यावरण परिवर्तक सेट नहीं है" को कैसे हटाएं

अब मुझे एक समस्या का सामना करना पड़ रहा है कि एक और तीसरी सरल स्क्रिप्ट - upgradeAndTest.sh जब setup.sh को कॉल करता है, उस समय भी "TERM पर्यावरण चर सेट नहीं होता है।" upgradeAndTest.sh स्क्रिप्ट के आउटपुट में देखा जाता है। ऐसा क्यों है ..?

इसके अलावा, अगर मैं setup.sh के stderr को स्क्रिप्ट कॉल करने में stdout पर रीडायरेक्ट करता हूं तो "TERM पर्यावरण चर सेट नहीं है।" कंसोल पर प्रदर्शित करता है।

कोई भी मुझे कॉलिंग स्क्रिप्ट के stdout से इस लाइन को हटाने में मदद कर सकता है ..?

उत्तर

25

cron के माध्यम से टर्मिनल की मांग करने वाले प्रोग्राम को चलाने से समस्याएं पैदा हो सकती हैं; जब यह cron द्वारा चलाया जाता है तो इसमें टर्मिनल नहीं होगा।

संदेह होने पर, हालांकि, यह सुनिश्चित करें कि चर लिपि में सेट किया गया है, एक पंक्ति जोड़कर:

export TERM=${TERM:-dumb} 

वातावरण चर TERM पहले से ही सेट है, तो यह एक नहीं सेशन है। यदि ऐसा नहीं है, तो यह न्यूनतम क्षमता वाले टर्मिनल को मानक मानता है - यह उस प्रोग्राम को संतुष्ट करता है जो TERM को सेट नहीं किया जा रहा है।

+0

ग्रेट समाधान, बहुत साफ है। धन्यवाद! –

संबंधित मुद्दे