के भीतर इंटरैक्टिव खोल का पता लगाने के लिए यह निर्धारित करने का पसंदीदा तरीका क्या है कि दिया गया Ksh आमंत्रण एक इंटरैक्टिव खोल चला रहा है या नहीं?ksh ENV स्क्रिप्ट
मेरे पास ENV
फ़ाइल में कुछ आदेश हैं जो मैं गैर-इंटरैक्टिव केश इनवोकेशन (जैसे शेल स्क्रिप्ट निष्पादित करते समय) के लिए छोड़ना चाहता हूं।
मैं लेकर from सुझाव देखा है:
if [[ $- = *i* ]]; then
# do interactive stuff
fi
... यहां तक कि .kshrc
सोर्सिंग नहीं जब तक खोल का उपयोग करते हुए इस गुप्त incantation इंटरैक्टिव निर्धारित किया जाता है:
ENVIRON=$HOME/.kshrc export ENVIRON
ENV='${ENVIRON[(_$-=1)+(_=0)-(_$-!=_${-%%*i*})]}' export ENV
'-टी एन' परीक्षण भी कॉर्न शेल में काम करते हैं। –
'-t एन' निश्चित है? क्या ऐसे मामले हैं जहां यह '$ - = * i *' से अलग है? –
'test -t 0' परीक्षण के लिए है, चाहे 'stdin' टर्मिनल है। यह वैसा ही नहीं है कि शैल इंटरैक्टिव है या नहीं। आप एक शेल-स्क्रिप्ट चला सकते हैं, उदाहरण के लिए, tty से पढ़ना। –