एक जटिल 1 लाइन बैश कमांड को diretly चलाने के लिए एक लॉन्चड प्लिस्ट कैसे प्राप्त करें?


13

मेरे पास कुछ हद तक जटिल बैश कमांड है जिसमें कुछ पाइप और एक-अगर-और-क्लॉज शामिल हैं, grepजिसमें कई मापदंडों के साथ कॉलिंग सिस्टम प्रोग्राम (जैसे कि ) का उल्लेख नहीं है ।

क्या एक प्लास्ट बनाने का एक तरीका है जो लॉन्च सीधे इस जटिल कमांड को लोड और चलाएगा? (जैसा कि प्लास्ट संदर्भ में एक बैश स्क्रिप्ट फ़ाइल होने का विरोध किया गया है जिसमें जटिल कमांड है)

धन्यवाद।

जवाबों:


16

हाँ। ProgramArgumentsतत्व की स्थापना करते समय , बस bashपहले तर्क के -cरूप में, दूसरे तर्क के रूप में, तब [your commands](किसी भी XML संस्थाओं को बदलने के लिए याद रखना, जैसे कि >, &और इसी तरह) तीसरे के रूप में, जैसे:

<key>ProgramArguments</key>
<array>
        <string>/bin/bash</string>
        <string>-c</string>
        <string>ls -1 | grep *.txt | echo &gt; allTextFiles</string>
</array>

सरणी के तीसरे तत्व को अपने वास्तविक कमांड से बदलें।


1
मैं इस परीक्षण नहीं किया है, लेकिन मैं कर रहा हूँ यकीन है कि आप कमांड स्ट्रिंग के आसपास उद्धरण नहीं करना चाहते हैं, लेकिन आप एचटीएमएल-इकाई यह एनकोड करने की आवश्यकता है कि (जैसे उपयोग &gt;और &lt;के बजाय >और <पुनर्निर्देशन के लिए)।
गॉर्डन डेविसन

@ गॉर्डन डेविसन - आप निश्चित रूप से उद्धरण के बारे में सही हैं - वे उसी उद्देश्य को पूरा करते हैं जैसे कि यह सरणी का एक तत्व बनाता है। मुझे पूरा यकीन है कि आप XML संस्थाओं के बारे में भी सही हैं। अच्छी पकड़। मैंने उसी के अनुसार अपना उत्तर संपादित किया है।
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.