2009-11-30 12 views
20

बनाने की कोशिश कर रहा है:मैं बैश उपनाम में पैरामीटर कैसे शामिल करूं?

alias mcd="mkdir $1; cd $1" 

प्राप्त करना:

$ mcd foo 
usage: mkdir [-pv] [-m mode] directory ... 
-bash: foo: command not found 

मैं गलत क्या कर रहा हूं?

+1

यह एक पूछा और पहले उत्तर दिया गया! –

उत्तर

31

एक उपनाम कुछ मनमानी पाठ के साथ केवल कमांड के पहले शब्द को प्रतिस्थापित कर सकता है। यह पैरामीटर का उपयोग नहीं कर सकता है।

आप इसके बजाय किसी खोल समारोह का उपयोग कर सकते हैं:

mcd() 
{ 
    test -e "$1" || mkdir "$1" 
    cd "$1" 
} 
+0

भी एक शेल स्क्रिप्ट हो सकता था? बिना किसी विस्तार के फ़ाइल एमसीडी के रूप में नामित? एक समारोह अलग या बेहतर कैसे है? – talkaboutquality

+5

यह एक शेल स्क्रिप्ट के रूप में काम नहीं करेगा, क्योंकि स्क्रिप्ट एक सबहेल में चलती है। सीडी के इरादे से प्रभाव डालने के लिए, इसे कॉलर के खोल में भागना होगा, न कि सबहेल। –

+0

इस फ़ंक्शन को कैसे कहा जाना चाहिए? – Tebe

संबंधित मुद्दे