कई आदेशों का समर्थन


8

मैं TextEdit के लिए निम्नलिखित कमांड और पाइप स्टाउट दोनों को चलाना चाहूंगा:

pmset -g; echo; pmset -g assertions | open -f -a TextEdit 

यह काम नहीं करता है, यह केवल बाद को निष्पादित करता है:

कैसे?

जवाबों:


11

आह, bashपुनर्निर्देशन: -

( pmset -g && echo && pmset -g assertions ) | open -f -a TextEdit

यह आपके कमांड्स को एक &&सब-शेल में सिंगल बैश कमांड के रूप में चलाता है (जो कि इसका प्रभाव है ) (जो इसे ()करता है, उसमें लपेटता है) और आपके लिए TextEdit में सब-शेल के आउटपुट को रीडायरेक्ट करता है। आपको तकनीकी रूप से &&इसके बजाय उपयोग करने की आवश्यकता नहीं है , ;लेकिन इसे बदलने का प्रभाव यह है कि यदि कोई भी आदेश विफल हो जाता है तो यह उस बिंदु पर पूरी श्रृंखला को रोक देगा।

नोट: आपके उदाहरण में सभी कमांड चलाए जा रहे हैं (जैसा कि आप केवल pmset -g; echo; pmset -g assertionsकमांड लाइन पर चलकर साबित कर सकते हैं ), यह सिर्फ इतना है कि आप पाइप को केवल पिछले एक पर लागू कर रहे हैं। इसलिए इसे सब-वे में चलाने की आवश्यकता है।

ध्यान दें: यदि आप चाहें तो |चरित्र >को किसी फ़ाइल में बदल सकते हैं और आउटपुट भेज सकते हैं।


यह छोटी सी टिप अविश्वसनीय रूप से सहायक रही है। इन्स / आउट इन बिल्ट इन कमांड्स / स्पेशल कैरेक्टर्स को शायद ही डॉक्यूमेंट किया जाता है। फिर से धन्यवाद।
njboot

4

() कमांड को एक एकल प्रक्रिया में जोड़ते हैं, उन्हें गतिरोध के लिए:

(pmset -g; echo; pmset -g assertions) | open -f -a TextEdit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.