अलग-अलग निर्देशिका में स्क्रिप्ट निष्पादित कैसे करें?


51

मैंने यह कोशिश की

./home/user/scripts/someScript

लेकिन यह काम नहीं करता है

ऐसी कोई फ़ाइल या डायरेक्टरी नहीं है

कोई विचार?


2
जाहिर है कि ऐसी कोई फ़ाइल या निर्देशिका नहीं है। तो आप गलत रास्ता देते हैं। वहाँ डॉट का मतलब "निष्पादित" नहीं है। यह सिर्फ रास्ते का हिस्सा है। शेल में आप आम तौर पर या तो निष्पादित की जाने वाली फाइलों को टाइप करते हैं या कमांड्स (जो वास्तव में फाइलें भी होती हैं) :)
14-13 को पिथिकोस

उस शुरुआती अवधि से छुटकारा पाएं और फिर से प्रयास करें। वैकल्पिक रूप से, ~ / स्क्रिप्ट / someScript भी काम करेगा। ध्यान में रखते हुए `` qoutes, और निष्पादन कार्यक्रम ($ आदमी
निष्पादित

जवाबों:


61

आपके आदेश में अग्रणी बिंदु का अर्थ "वर्तमान निर्देशिका के सापेक्ष" है। यह निकालें और इसे "करने के लिए फ़ाइल पर गौर करेंगे someScriptनिर्देशिका में /home/user/scripts:

/home/user/scripts/someScript

यदि आपको "अनुमति अस्वीकृत" मिलती है, तो यह या तो है क्योंकि आपके पास फ़ाइल को अन्य उपयोगकर्ताओं की निर्देशिका में एक्सेस करने के लिए पर्याप्त अनुमति नहीं है या क्योंकि फ़ाइल निष्पादन योग्य नहीं है। इसे निष्पादन योग्य बनाने के लिए, चलाएं:

chmod +x /home/user/scripts/someScript

35

यदि आपकी स्क्रिप्ट को उसी फ़ोल्डर में संसाधनों तक पहुंचने की आवश्यकता है जिसे वह से चलाया जा रहा है, और आपके पास इसे निर्दिष्ट पथ के रूप में निर्दिष्ट है, तो आपकी स्क्रिप्ट टूट जाएगी।

मैं हमेशा cd $(dirname $0)अपनी स्क्रिप्ट के प्रमुख में जोड़ता हूं, इसलिए स्क्रिप्ट वाला फ़ोल्डर रूट फ़ोल्डर होगा।


6

हटाए .

यदि आप chmod 755 <nameofscript>इसे चलाने के लिए ट्रैप को निष्पादन योग्य बनाते हैं, तो आपको केवल स्क्रिप्ट पर पथ टाइप करना होगा।

जब आप ./scriptइसका उपयोग करते हुए देखते हैं, तो यह शेल को बताता है कि स्क्रिप्ट उसी निर्देशिका पर स्थित है जिसे आप निष्पादित कर रहे हैं। पूर्ण पथ का उपयोग करने के लिए आप टाइप करें sh /home/user/scripts/someScript


sh /path/to/fileसे अलग है /path/to/fileshवह रन /bin/shजिसके लिए सहानुभूति है /bin/dash
लेकेन्स्टेयिन

नेट पर आपके द्वारा देखे जाने वाले उदाहरणों पर कुछ स्पष्ट करते हुए, आमतौर पर आप देखते हैं sh ./somescriptकि जिन्हें 'श / पथ / से / लिपि / लिपि के रूप में' टाइप किया जा सकता है।
ब्रूनो परेरा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.