मेरे पास एक मेकफ़ाइल है जो कमांड लेती है जो थोड़ी देर ले सकती है। मैं उन आदेशों को चतुर होना चाहूंगा यदि निर्माण एक इंटरैक्टिव खोल से शुरू किया गया हो लेकिन शांत नहीं है (विशेष रूप से, क्रॉन द्वारा)। (छद्म कोड) की रेखाओं के साथ कुछ:मैं कैसे बता सकता हूं कि एक इंटरैक्टिव खोल से मेकफ़ाइल चलाया जा रहा है या नहीं?
foo_opts = -a -b -c
if (make was invoked from an interactive shell):
foo_opts += --verbose
all: bar baz
foo $(foo_opts)
यह जीएनयू बनाना है। यदि मैं जो कुछ भी कर रहा हूं उसके विनिर्देश, मैं प्रश्न संपादित कर सकता हूं।
(ए) मेकफ़ाइल में आप उस परीक्षण को कैसे बनाते हैं? (बी) मैं अक्सर एक इंटरैक्टिव खोल से बना देता हूं जिसमें दोनों स्टडआउट और स्टडर को पाइप पर रीडायरेक्ट किया जाता है (जो आउटपुट की प्रतिलिपि रिकॉर्ड-रखरखाव के लिए फ़ाइल में भेजता है और इसे मेरे टर्मिनल पर भी भेजता है), तो परीक्षण होगा मेरे लिए असफल –
@ जोनाथन लेफ्लर: स्टडीन काम का उपयोग करेंगे? – PleaseStand
अधिकतर ... यह अक्सर एक विश्वसनीय टर्मिनल से जुड़ा हुआ है या नहीं, यह अक्सर सबसे विश्वसनीय जांच है; कुछ लोग '' बनाओ dev/null' 'चलाते हैं। –