2013-02-04 13 views
18

के माध्यम से जा रहा है कि मैं इस उदाहरण खोल स्क्रिप्ट है:पास आर्ग जब पाइप

echo /$1/ 

तो मैं कह सकते हैं

$ . ./script 5 
# output: /5/ 

मैं पाइप को श (ell) में स्क्रिप्ट चाहते हैं, लेकिन कर सकते हैं मैं भी बहस पास करता हूँ?

cat script | sh 
# output: // 

उत्तर

25

आप -s विकल्प का उपयोग कर खोल करने के लिए तर्क पारित कर सकते हैं:

cat script | bash -s 5 
+2

या अधिमानतः 'बैश -s 5 chepner

+1

@chepner: यदि यह वास्तव में एक फ़ाइल से पढ़ रहा था और अधिक जटिल पाइपलाइन नहीं था, तो यह बेहतर होगा ('ba) sh script 5'। – Matt

+0

'-p' की तरह काम नहीं करता है (जो डैश से शुरू होता है) ' बिल्ली स्क्रिप्ट | bash -s -a -b -c' उत्तर देखें http://stackoverflow.com/a/25563308/983232 –