2011-06-16 12 views
20

मैं है मेरी bash लिपि में निम्नलिखित कार्य है:कार्यक्रम लागू जब एक पार्टी समारोह में एक ही नाम

make() { 
    cd Python-3.2 
    make 
} 

मेकअप इस स्क्रिप्ट के भीतर बुलाया जाता है, इस समारोह शुरू हो जाती है, जो recurses। फ़ंक्शन के अंदर make पर कॉल वास्तव में बाह्य बनाने उपयोगिता का आह्वान करना चाहिए। मेरे मेक फ़ंक्शन का नाम बदलने के अलावा, इसे प्राप्त करने का सबसे साफ तरीका क्या है?

उत्तर

41

आप शेल फ़ंक्शन लुकअप को दबाने के लिए command अंतर्निहित उपयोग कर सकते हैं।

command: command [-pVv] command [arg ...] 
    Execute a simple command or display information about commands. 

    Runs COMMAND with ARGS suppressing shell function lookup, or display 
    information about the specified COMMANDs. Can be used to invoke commands 
    on disk when a function with the same name exists. 

    Options: 
     -p use a default value for PATH that is guaranteed to find all of 
     the standard utilities 
     -v print a description of COMMAND similar to the `type' builtin 
     -V print a more verbose description of each COMMAND 

    Exit Status: 
    Returns exit status of COMMAND, or failure if COMMAND is not found. 
+2

'which' उपयोगिता का उपयोग करने पर इस दृष्टिकोण का एक लाभ यह है कि यह एक अतिरिक्त प्रक्रिया शुरू किया जा रहा से बचने जाएगा। –

+0

यह बिल्कुल सही जवाब है। –

+0

+1: मैं पूरी तरह से इसके बारे में भूल गया। –

9

कार्यक्रम के लिए पूर्ण पथ का उपयोग करें। जैसे /usr/bin/make

$(which make) 

कि पूरा पथ खोजने के लिए और make निष्पादित करेंगे:

आप पूरा पथ नहीं जानते हैं, तो आप which उपयोगिता, की तरह उपयोग कर सकते हैं।

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