मैं टर्मिनल में .sh या .command फ़ाइल कैसे चलाते हैं


87

मैं हमेशा एक स्क्रिप्ट चलाने में सक्षम होना चाहता हूं जिसे मैंने सीधे फाइंडर से ऑनलाइन डाउनलोड किया है लेकिन फ़ाइल को डबल क्लिक करने से काम नहीं चलता है।

जवाबों:


103

टर्मिनल खोलें, टाइप करें sh /path/to/fileऔर एंटर दबाएँ।

तेजी से टाइप करना है shऔर एक जगह है और फिर फ़ाइल को खिड़की पर खींचें और आइकन को खिड़की पर कहीं भी छोड़ दें।


3
अगर आपको लगता है कि शेल स्क्रिप्ट दूसरे शेल के सिंटैक्स में लिखी जाएगी, जैसे tsh, zsh, या ksh? प्रत्यय shएक शेल स्क्रिप्ट को दर्शाता है "स्क्रिप्ट को इस शेल में न चलाएं"।
fd0

3
@ fd0 शेबबैंग लाइन उसका ख्याल रखेगी
user14492

4
@ user14492- जब आप शेल स्क्रिप्ट को इनवॉइस करते हैं तो शेबंग shell shell_scriptलाइन को नजरअंदाज कर दिया जाता है। शेल पहली पंक्ति को टिप्पणी के रूप में पढ़ता है।
fd0

@ fd0, मुझे समझ नहीं आया। sh /path/to/fileकोई भी शब्दार्थ वैकल्पिक से अलग कैसे है /path/to/file.sh?
पचेरियर

2
@ पेसरियर- पहले रूप में, इनवोकिंग उपयोगकर्ता को फ़ाइल पढ़ने में सक्षम होना चाहिए और यह चुनना चाहिए कि कौन से दुभाषिया फ़ाइल को पढ़ेगा। दूसरे रूप में, फ़ाइल की अनुमतियों को पढ़ने और लागू करने वाले उपयोगकर्ता के लिए निष्पादित किया जाना चाहिए और स्क्रिप्ट की पहली पंक्ति पर हैश बैंग द्वारा दुभाषिया निर्धारित किया जाता है। दोनों मामलों में कर्नेल फ़ाइल पर प्रत्यय की व्याख्या नहीं करता है।
fd0

12

वैकल्पिक रूप से, आप भी कर सकते हैं

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

जो अपने निर्दिष्ट शेल के साथ निष्पादन योग्य फ़ाइल भी चलाएगा (यदि शेबंग में निर्दिष्ट है #!/bin/(shell)


1
सवाल में यह कहता है "एक स्क्रिप्ट चलाएं जिसे मैंने ऑनलाइन डाउनलोड किया है"। इंटरनेट आमतौर पर अनुमतियों 644. करने के लिए निर्धारित किया है से डाउनलोड फ़ाइलें
nohillside

@patrix मुझे लगता है कि यह केवल इंटरनेट नहीं है, लेकिन आपके खाते में डिफ़ॉल्ट मुखौटा के कारण आपकी हर फ़ाइल जो किसी अन्य फ़ाइल सिस्टम से कॉपी की गई है।
rwenz3l

8
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

~/.bash_profileनिम्न पंक्ति संपादित करें और जोड़ें:

alias myfile=./myfile.sh

निम्नलिखित कमांड-लाइन निष्पादित करें:

source ~/.bash_profile

तब आप अपनी फ़ाइल को प्रोग्राम के रूप में चला पाएंगे

$ myfile


उबंटू में आपके रास्ते में किसी भी स्क्रिप्ट को तब तक निष्पादित किया जा सकता है जब तक आपके पास है #~/bin/sh, जबकि OSXस्क्रिप्ट में .shविस्तार और aliasउनमें से प्रत्येक के लिए एक होना चाहिए । : -ओ
फैब्रीज़ियो बर्टोग्लियो

6

स्क्रिप्ट फ़ाइलों को चलाने के लिए इन चरणों का पालन करें:

  1. .Sh फ़ाइल पर राइट-क्लिक करें।

  2. ओपन के साथ होवर करें ।

  3. चुनें अन्य ...

  4. आपको एप्लिकेशन फ़ोल्डर में होना चाहिए । यूटिलिटीज फ़ोल्डर खोलें और Terminal.app का चयन करें।

  5. यदि आप Terminal.app का चयन नहीं कर सकते हैं, तो सक्षम अनुप्रयोगों को अनुशंसित एप्लिकेशन से सभी एप्लिकेशन में बदल दें । यह खिड़की के नीचे है।

  6. अगर आप हर .shफाइल को टर्मिनल के साथ खोलना चाहते हैं , तो हमेशा साथ खोलें पर टिक करें ।

  7. विंडो के निचले दाएं कोने में खुला बटन दबाएं ।


3

डाउनलोड करने के बाद यह काम नहीं करता है इसका कारण यह है कि फाइल की अनुमति नहीं है। अनुमतियाँ निष्पादित करने के लिए, टर्मिनल खोलें और टाइप करें chmod 755 /path/to/script। पूर्ण पथ टाइप करने के बजाय, आप खोजक से टर्मिनल विंडो पर स्क्रिप्ट को खींच सकते हैं। फिर, निष्पादित करने के लिए, बस दर्ज करें /path/to/script। दोबारा, आप फ़ाइल को टर्मिनल विंडो पर ड्रैग और ड्रॉप कर सकते हैं। इस सिंटैक्स को स्क्रिप्ट की पहली पंक्ति पर परिभाषित सही शेल का उपयोग करके स्क्रिप्ट को निष्पादित करना चाहिए।


मेरी फ़ाइल .sh उस पाठ संपादक में खुलती है जिसके साथ मैंने फ़ाइल बनाई थी। मैं इसके बजाय इसे टर्मिनल में कैसे खोल सकता हूं? मैंने सही अनुमतियां सेट की हैं।
बार्ट

@ आपको सीधे खोजक के भीतर स्क्रिप्ट निष्पादित करने के लिए .command एक्सटेंशन को जोड़ने की आवश्यकता है।
rwenz3l
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.