जवाबों:
$prompt: /path/to/script
और हिट दर्ज करें। ध्यान दें कि आपको यह सुनिश्चित करने की आवश्यकता है कि स्क्रिप्ट ने अनुमतियाँ निष्पादित की हैं।
/path/to
डायरेक्टरी में हैं, जैसे cd /path/to
कमांड के साथ , आप ./script
अपनी स्क्रिप्ट को चलाने के लिए दर्ज कर सकते हैं । इस मामले में '/।' को 'स्क्रिप्ट' से पहले
फिर भी इसे अंजाम देने का एक और तरीका है (इस समय निष्पादन की अनुमति के बिना):
bash /path/to/scriptname
निर्देशिका में cd जिसमें स्क्रिप्ट शामिल है, या इसे एक बिन फ़ोल्डर में रखें जो आपके $ PATH में है
फिर टाइप करें
./scriptname.sh
यदि उसी निर्देशिका में या
scriptname.sh
अगर यह बिन फ़ोल्डर में है।
./scriptname.sh
मेरे लिए काम करता है लेकिन scriptname.sh
देता है scriptname.sh: command not found
। -rwxr-xr-x
इसकी अनुमति है।
cd
सभी को कहीं भी सलाह एक और आम शुरुआत गलतफहमी है। जब तक स्क्रिप्ट में आंतरिक रूप से निर्भरता नहीं होती है, जिसके लिए उसे किसी विशेष निर्देशिका में चलाने की आवश्यकता होती है (जैसे, एक डेटा फ़ाइल को पढ़ने की आवश्यकता होती है, जो स्क्रिप्ट अनावश्यक रूप से इंगित करने का विकल्प प्रदान नहीं करती है) तो आपको cd
इसे चलाने के लिए कहीं भी कभी भी आवश्यकता नहीं होनी चाहिए , और बहुत अक्सर नहीं करना चाहेगा।
तुम यह कर सकते थे:
sh scriptname.sh
sh
एक सिमलिंक है bash
, या अगर स्क्रिप्ट किसी भी बैश विशेष निर्माण का उपयोग नहीं करता। पूर्व मामले में, bash
इसके बजाय का उपयोग करना sh
सही, पोर्टेबल समाधान है; बाद के मामले में, यह इस विशेष प्रश्न का सही उत्तर नहीं है, क्योंकि ओपी ने विशेष रूप से बैश स्क्रिप्ट के लिए सलाह के बारे में पूछा था। गलत उत्तर को गलत ठहराना गैर जिम्मेदाराना है; जो उपयोगकर्ता अंतर को अक्सर समझने में विफल रहते हैं, और यह दिखाने की जरूरत है कि यह "मेरे लिए काम" उत्तर उनके लिए क्यों नहीं हुआ।
सबसे पहले आप इसे का उपयोग निष्पादन करना है: chmod +x name_of_your_file_script
।
आपके द्वारा इसे निष्पादन योग्य बनाने के बाद, आप इसका उपयोग करके चला सकते हैं ./same_name_of_your_file_script
अपनी निर्देशिका को बदलें जहां cd कमांड का उपयोग करके स्क्रिप्ट स्थित है
फिर टाइप करें
bash program-name.sh
cd
कहीं भी कोई जरूरत नहीं है ; आप तर्क के रूप में एक मनमाने ढंग से जटिल पथ नाम निर्दिष्ट कर सकते हैं bash
; वास्तव में, कोई भी प्रोग्राम जो एक फ़ाइल नाम तर्क लेता है, इस तरह से काम करता है (या बहुत बुरा है, मन-स्तब्ध रूप से टूट गया है)।
यह एक पुराना धागा है, लेकिन मैं इसके पार हुआ और मुझे आश्चर्य है कि किसी ने भी अभी तक पूरा जवाब नहीं दिया है। तो यहाँ जाता है ...
प्रश्न: मैं इसे टर्मिनल में कैसे निष्पादित करूं?
भ्रम और संघर्ष:
sudo
से कुछ भी करने की । यह कमांड किसी अन्य उपयोगकर्ता या 'रूट' (व्यवस्थापक) उपयोगकर्ता के रूप में कमांड चलाने के लिए आरक्षित है। यहाँ बढ़िया पोस्ट ।(एक व्यक्ति जो केवल लिपियों को निष्पादित करना सीख रहा है उसे इस कमांड का उपयोग नहीं करना चाहिए जब तक कि कोई वास्तविक आवश्यकता न हो, जैसे कि एक नया प्रोग्राम स्थापित करना। आपकी स्क्रिप्ट डालने की एक अच्छी जगह आपके ~ / बिन फ़ोल्डर में है। आप वहां से प्राप्त कर सकते हैं। टाइपिंग cd ~/bin
या cd $HOME/bin
टर्मिनल प्रॉम्प्ट से। आपके पास उस फ़ोल्डर में पूर्ण अनुमति होगी।)
Unix / Linux प्रकार प्रणाली पर टर्मिनल से "इस स्क्रिप्ट को निष्पादित करने के लिए", आपको तीन काम करने होंगे:
सिस्टम को स्क्रिप्ट का स्थान बताएं। (एक चुनें)
/path/to/script.sh
) के साथ पूर्ण पथ टाइप करें । आप टाइप करके पूरा रास्ता सत्यापित कर सकते हैंpwd
या echo $PWD
टर्मिनल में ।./
पथ के लिए उपयोग करें (जैसे ./script.sh
)। आसान।PATH
और केवल नाम टाइप करें (जैसे script.sh
)। आप PATH
टाइप करके echo $PATH
या echo -e ${PATH//:/\\n}
यदि आप एक सूची चाहते हैं, तो आप सिस्टम को सत्यापित कर सकते हैं ।सिस्टम को बताएं कि स्क्रिप्ट को निष्पादित करने की अनुमति है। (एक चुनें)
chmod +x /path/to/script.sh
टर्मिनल में टाइप करके "एक्जीक्यूट बिट" सेट करें ।chmod 755 /path/to/script.sh
यदि आप संख्या पसंद करते हैं तो आप इसका उपयोग भी कर सकते हैं। यहां एक शांत चार्ट के साथ एक महान चर्चा है ।सिस्टम को स्क्रिप्ट का प्रकार बताएं। (एक चुनें)
BASH /path/to/script.sh
या PHP /path/to/script.php
) यदि स्क्रिप्ट में कोई एक्सटेंशन है, जैसे .php या .py, यह स्क्रिप्ट नाम का हिस्सा है और आपको इसे अवश्य शामिल करना चाहिए।#!/bin/bash
अपने उदाहरण में । यदि आपके पास आपकी स्क्रिप्ट की पहली पंक्ति है, तो सिस्टम स्क्रिप्ट को निष्पादित करने के लिए उस प्रोग्राम का उपयोग करेगा। प्रोग्राम टाइप करने या एक्सटेंशन का उपयोग करने की कोई आवश्यकता नहीं है।PATH
उपयोग करके पहले है । पेशेवरों और विपक्ष के रूप में अच्छी तरह से यहाँ चर्चा कर रहे हैं ।#!/usr/bin/env
#!/usr/bin/env bash
#!/usr/bin/env python3
script.sh
और script.php
ये स्क्रिप्ट का शाब्दिक फ़ाइल नाम हैं, और है कि यदि आप फ़ाइल के नाम में ही विस्तार कर दिया है, आप इसे शामिल करने के लिए जब आप विपरीत स्क्रिप्ट (और इसके चलाने की जरूरत है, अगर स्क्रिप्ट नहीं करता ' टी में एक एक्सटेंशन है, एक मत डालो)। यह उदाहरण DOS के विपरीत है जहाँ आप फ़ाइल नाम से .bat
या उससे बाहर .exe
निकल सकते हैं , और निष्पादन योग्य माने जाने के लिए छोटे सेट से एक्सटेंशन की आवश्यकता होती है।
यदि आप एक निर्देशिका या फ़ोल्डर में हैं जहां स्क्रिप्ट फ़ाइल उपलब्ध है तो बस निष्पादन योग्य मोड में फ़ाइल अनुमति को बदलकर करें
chmod +x your_filename.sh
उसके बाद आप निम्न कमांड का उपयोग करके स्क्रिप्ट चलाएंगे।
$ sudo ./your_filename.sh
इसके ऊपर "।" वर्तमान निर्देशिका का प्रतिनिधित्व करते हैं। ध्यान दें! यदि आप उस निर्देशिका में नहीं हैं जहाँ bash स्क्रिप्ट फ़ाइल मौजूद है तो आप उस निर्देशिका को बदलते हैं जहाँ फ़ाइल का उपयोग करके स्थित है
cd Directory_name/write the complete path
आदेश। अन्यथा आपकी स्क्रिप्ट नहीं चल सकती।
sudo
है गलत है और संभवतः बहुत गलत है, तो आप किसी अविश्वसनीय स्क्रिप्ट जो गालियाँ शक्तियों आप बेकार में दे दिया पर इसका इस्तेमाल।
cd
कहीं समझने की सलाह कठिन है, लेकिन शायद गलत भी है।
chmod +x scriptname
और फिर कोशिश करें./scriptname
।