पूर्ण पथ लिखे बिना कंसोल से अजगर स्क्रिप्ट को कैसे निष्पादित किया जाए?


8

मेरे पास / usr / share / script / पर कुछ python स्क्रिप्ट हैं / जिनका मैं अक्सर उपयोग करता हूं, और मैं केवल नाम लिखकर उन्हें निष्पादित करने में सक्षम होना चाहता हूं और पूर्ण पथ नहीं, मैं यह कैसे कर सकता हूं?

इको $ पेट मुझे दिखाता है:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

इसलिए मैंने टर्मिनल पर लिखने की कोशिश की:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export

कोई त्रुटि नहीं दिखाई गई और $ PATH अब मेरी नई स्क्रिप्ट पथ दिखाता है, लेकिन जब मैं स्क्रिप्ट चलाता हूं तो मुझे आज्ञा मिलती है कि मुझे नहीं मिला।

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


आपने इसे पहले कैसे किया?
इग्नासियो वाज़केज़-अब्राम्स

मैंने पहले ऐसा नहीं किया था।
ग्रीडस

आपने उन्हें नहीं चलाया? मैंने सोचा था कि आपने कहा था कि आप उन्हें अक्सर इस्तेमाल करते हैं ...
इग्नासियो वाज़केज़-अब्राम्स

@ इग्नासियो वाज़केज़-अब्राम्स: ओह, मुझे आपका सवाल समझ में नहीं आया, मैंने उन्हें "/usr/share/scripts/scriptName.py args" की तरह
दौड़ाया

जवाबों:


9

अजगर स्क्रिप्ट के लिए निष्पादन योग्य अनुमतियाँ सेट करें "chmod + x *"
अब आपके पास दो विकल्प हैं:

  • PATH env वैरिएबल में अपनी स्क्रिप्ट डायरेक्टरी जोड़ें, या
  • निर्देशिका में एक-एक करके अपनी लिपियों के प्रतीकात्मक लिंक बनाएं (या दूसरी स्क्रिप्ट लिखने के लिए) /usr/local/bin

उदाहरण:
[mzed@node02 test]$ vim printme.py

फ़ाइल की सामग्री:

#!/usr/bin/python
print "This is cool!"

-

[mzed@node02 test]$ mv printme.py printme
[mzed@node02 test]$ chmod +x printme
[mzed@node02 ~]$ cd /usr/local/bin/
[mzed@node02 bin]$ sudo ln -s ~/test/printme .
[mzed@node02 bin]$ ls
deskzilla  grails  grails-debug  printme  startGrails
[mzed@node02 bin]$ cd
[mzed@node02 ~]$ printme 
This is cool!
[mzed@node02 ~]$

उम्मीद है इससे आपको मदद मिलेगी।


विंडोज के लिए एक संस्करण बनाने की कोई संभावना है? (मुझे पता है कि यह एक लिनक्स सवाल है)
इयूलियन ओनोफ्रेई

1

ठीक है, शायद मैं सिर्फ पुराना स्कूल हूँ ...
में / usr / bin # / / बिन / बैश हैडर और कोई .sh एक्सटेंशन के साथ शेल स्क्रिप्ट जोड़ें। फिर उन लिपियों में सिर्फ अजगर निरपेक्षता चलाते हैं।

मुझे क्यों लगता है कि यह अन्य उत्तरों से बेहतर है:
उन्हें निष्पादन योग्य बनाने के लिए आपकी स्क्रिप्ट को chmod-ing की आवश्यकता नहीं है।
अपनी स्क्रिप्ट का नाम बदलने की आवश्यकता नहीं है।


आर्गन्स मत भूलना।
juanitogan

0

एक बुनियादी बात का सुझाव देने के लिए क्षमा करें .. क्या आपने केवल "स्क्रिप्टनाम" के बजाय "स्क्रिप्टनेम" की कोशिश की थी?

साथ ही, सभी लिपियों को अनुमतियाँ निष्पादित करने की आवश्यकता होती है (आप "chmod + x script.py" जारी करके) कर सकते हैं .. ऊपर अपनी टिप्पणी से देखते हुए, क्योंकि आपने उन्हें "/ usr / share / script / scriptName की तरह चलाया है। py args ", उन्हें अनुमतियाँ निष्पादित करनी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.