2013-02-18 9 views
5

के बिना वर्तमान निर्देशिका से शैल स्क्रिप्ट निष्पादित करना मैंने "testfile" नामक एक फ़ाइल बनाई है और इसे chmod +x testfile का उपयोग करके निष्पादन योग्य बना दिया है। फ़ाइल "testfile" निष्पादित करने के लिए मुझे ./testfile आदेश चलाने की आवश्यकता है।"/filename"

मुझे यह जानने की ज़रूरत है कि मैं ./ का उपयोग किए बिना प्रोग्राम चला सकता हूं और testfile कमांड का उपयोग कर फ़ाइल निष्पादित कर सकता हूं?

> echo 'echo Hello, World!' > mycommand 
> mycommand 
-bash: mycommand: command not found 
> ./mycommand 
Hello, World! 
> PATH=".:$PATH"; 
> mycommand 
Hello, World! 
> 
+0

'निर्यात पथ है चाहिए = /: $ PATH', लेकिन यह अच्छा नहीं है।। –

+0

कृपया इसे कॉल नहीं करते 'test' कि आदेश पहले से ही मौजूद है। – dogbane

उत्तर

4

आप बिना इसे निष्पादित कर सकते हैं ./ द्वारा:

नीचे दिखाया गया है फ़ाइल "testfile"

echo Todays date is : 
date 
+0

हाँ, लेकिन मैं उन में से किसी के बिना मेरी फाइल पर अमल की जरूरत है। निष्पादन आदेश की तरह जो पहले से ही लिनक्स में है। उदाहरण के लिए: शीर्ष, ps, एलएस और आदि –

+1

आह, ठीक है, इस मामले में आप क्या कर सकते हैं एक उपनाम परिभाषित करने के लिए है में: 'उर्फ execute_testfile =" श/path// फ़ाइल/testfile को "'। और फिर, जब भी आप 'execute_testfile' (आपके द्वारा निर्धारित या जो भी नाम) लिखते हैं, आप प्रोग्राम को निष्पादित करेंगे। – fedorqui

+0

यह काम किया, आपको बहुत बहुत धन्यवाद! –

2

आप इस तरह अपने PATH चर को . जोड़ने की जरूरत के अंदर एक सरल कोड है का उपयोग करते हुए:

sh testfile 

या

sh /path/to/file/testfile 

संपादित
आप एक आदेश के साथ सीधे कार्यक्रम क्रियान्वित करना चाहते हैं, आप क्या कर सकते एक उपनाम परिभाषित करने के लिए है: तो

alias execute_testfile="sh /path/to/file/testfile" 

और, यदि आप प्रोग्राम को निष्पादित करेंगे जब भी आप

execute_testfile 

या जो भी नाम आप परिभाषित करते हैं।

इस उपनाम को लगातार बनाने के लिए, अपने ~/.profile या ~/.bash_profile फ़ाइलों में alias ... लाइन शामिल करें।

+0

उत्तर के लिए धन्यवाद, लेकिन मैं कहाँ इस ऐड करते हैं - 'पथ =":। $ पथ ", में' –

+0

अपने ~/.bashrc –

+0

@frozenhaart अपने आदेश चलाने से पहले सुरक्षा प्रॉम्प्ट में पतली है। उत्तर में अधिक जानकारी जोड़ा गया। –

2

आप पाथ वैरिएबल को परिभाषित कर सकते हैं .profile फ़ाइल जो आप अपनी होम निर्देशिका के अंतर्गत पा सकते हैं।

vi ~/.profile 

अपने .profile

/path/to/dir/:$PATH 

के अंत करने के लिए अनुवाद कौन सा में जोड़े "जोड़ने/path// dir/जो कुछ भी करने के लिए पथ चर सेट किया गया है करने के लिए"

आप चाहते हैं

vi /etc/environment - edit, save your changes 
source /etc/environment 
echo $PATH - should now return your new PATH 

उबंटू सर्वर पर काम करता है, मुझे लगता है कि होगा: प्रणाली आप कर सकते हैं के सभी उपयोगकर्ताओं के लिए पथ के लिए एक निर्देशिका जोड़ने सभी डेबियन वितरण पर, मुझे यकीन है कि नहीं करता है, तो अन्य वितरण/etc/वातावरण या पथ कहीं और निर्दिष्ट किया जाता है, तो

एलियासिंग अभी भी एक बेहतर समाधान

vi ~/.bashrc 

फ़ाइल के अंत में जोड़ें है हूँ

alias <your_script> ='/path/to/your_script.sh' 

लॉग बाहर, फिर से लॉग इन - तुम्हें अब ./.sh टाइप करने के लिए '

+0

आपकी मदद के लिए धन्यवाद! :) –

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