मैं कमांड लाइन स्क्रिप्ट कैसे निष्पादित करूं?


17

विंडोज में, मैं .batफाइलें बना सकता हूं । मैं इसे डबल क्लिक करता हूं और सभी लाइनों की व्याख्या की जाती है जैसे कि मैंने इसे कंसोल में दर्ज किया था।

ओएस एक्स में, मुझे किस फ़ाइल या प्रोग्राम का उपयोग करना है? अगर मैं एक फ़ाइल के साथ लिखना चाहता हूँ;

 echo hello world

मैं इस फ़ाइल को डबल क्लिक करना चाहता हूं और इसे कंसोल में निष्पादित करना है। मैं यह कैसे करूँ?


क्या फ़ाइल को डबल-क्लिक करने पर चलाने की ज़रूरत है, या क्या आप फ़ाइल नाम लिखकर फ़ाइल चलाना चाहते हैं?
फिल एम


डबल-क्लिक की गई फ़ाइल अधिक तेज़ है :)
Rodrigo

जवाबों:


24

ओएस एक्स में टर्मिनल अंडरपिनिंग लिनक्स में उपयोग किए जाने वाले समान हैं। जिसे आप विशेष रूप से देख रहे हैं उसे आमतौर पर "शेल स्क्रिप्टिंग" के रूप में जाना जाता है।

डिफ़ॉल्ट खोल जब आप खोलते हैं Terminal.app(स्थित है /Applications/Utilties) बैश शेल है।

OS X में फाइंडर और .commandएक्सटेंशन के माध्यम से अन्य अनुप्रयोगों के माध्यम से एक अंतर्निहित शेल हैंडलर सुलभ है , हालांकि निराशा .shविस्तार के माध्यम से नहीं । हालाँकि, खोजक के माध्यम से चलाने के लिए स्क्रिप्ट सेट करना और भी जटिल है।

  1. एक सरल शेल स्क्रिप्ट बनाएं, आपके उदाहरण की तरह मैंने हैलो वर्ल्ड एप्लीकेशन बनाया है:
#!/bin/bash
echo "Hello World"
  1. इस फ़ाइल को इस रूप में सहेजें HelloWorld.command

  2. इस फ़ाइल को निष्पादित करने की अनुमति दें। chmod u+x HelloWorld.commandऐसा करना चाहिए।

  3. उस निर्देशिका को खोलें जहाँ आपने फाइंडर में इस फाइल को सेव किया था। फिर HelloWorld.commandफाइल पर डबल क्लिक करें ।

यह एक टर्मिनल खोलेगा और स्क्रिप्ट निष्पादित करेगा, मेरे कंप्यूटर पर आउटपुट निम्न है:

$ /Users/jason/Applications/HelloWorld.command; बाहर जाएं;
हैलो वर्ल्ड
लॉगआउट

[प्रक्रिया पूरी हुई]

इस फ़ाइल को निष्पादित करने का वैकल्पिक तरीका अभी भी टर्मिनल में है, बस ./HelloWorld.commandयह मानते हुए कि आप फ़ाइल के समान निर्देशिका में हैं।

ऐसा करने से बहुत सरल आउटपुट प्राप्त होगा:

जेसन-मैक एप्लिकेशन $ ./HelloWorld.command
हैलो वर्ल्ड
जेसन-मैक एप्लीकेशन $

आपने अभी-अभी OS X में एक शेल स्क्रिप्ट बनाया और निष्पादित किया है!


एक तरफ के रूप में: यह हास्यास्पद रूप से निराशाजनक है कि OS X ".sh" फ़ाइलों के साथ ऐसा नहीं करता है, केवल ".command" फाइलें। हां, इसे बदलना संभव है, लेकिन .आनंद पहले से मौजूद है, इसलिए यह मेरा सुझाया समाधान है।
जेसन सलज

क्या आप इस सवाल को पूछना चाहते हैं कि लॉन्च सेवाओं के डेटाबेस में .sh को कैसे इंजेक्ट किया जाए या मैं करूं?
bmike

आपके पास स्पष्ट रूप से विचार था (विचार ने मेरे दिमाग को भी पार नहीं किया), इसलिए आप इसे करने के लिए स्वागत करते हैं।
जेसन सलज

मैं आप से विचार आया - यहाँ जाता है, ima यह सब पूछने पर वह है, खुद ...
bmike

यह मुझे दे:chown: u+x: Invalid argument
रोड्रिगो

4

विंडोज में कंसोल या कमांड प्रॉम्प्ट के बराबर / एप्लिकेशन / यूटिलिटीज / में स्थित टर्मिनल ऐप है

DOS के समतुल्य (या जो भी वे इसे इन दिनों कह रहे हैं) "बैश" है

Windows में बैच फ़ाइल (.bat) के बराबर एक शेल स्क्रिप्ट (.sh) है

बस "बैश" "संदर्भ" के लिए एक Google खोज करें और आप बाकी का पता लगाएंगे। मैं बैश कुकबुक (ओ 'रेली) खरीदने की भी सिफारिश करूंगा।

विशेष रूप से, यह वही होगा जो आप अपनी "हैलो वर्ल्ड" स्क्रिप्ट प्राप्त करने के लिए एक टर्मिनल विंडो में टाइप करेंगे:

फ़ाइल बनाने के लिए:

    echo "echo hello world" > file.sh

फ़ाइल को निष्पादन योग्य बनाने के लिए अनुमतियाँ बदलने के लिए:

    chmod 755 file.sh

स्क्रिप्ट चलाने के लिए:

    ./file.sh

अगर आप फाइंडर से इसे डबल-क्लिक करना चाहते हैं, तो फाइल पर राइट-क्लिक (या कंट्रोल-क्लिक) करें और गेट इंफो चुनें, फिर ओपन विथ के तहत टर्मिनल एप को चुनें। या आप .sh एक्सटेंशन के बजाय .command एक्सटेंशन का उपयोग कर सकते हैं।


2

आप शायद AppleScript को एक रूप देना चाहते हैं। इस पुस्तक साल सोघोइन द्वारा AppleScript पर पुस्तक जाने के लिए कई द्वारा माना जाता है।

मैक ऐप्स को स्वचालित करने के लिए उपयोगकर्ताओं के लिए एक और अच्छा तरीका है ऑटोमेटर । आप इसे एक कोशिश भी दे सकते हैं। उम्मीद है की यह मदद करेगा।

अपडेट करें

ऐसा लगता है कि आप यूनिक्स शेल स्क्रिप्टिंग जैसी किसी चीज़ की तलाश में हैं। यह दो ट्यूटोरियल सभ्य हैं और मूल बातें कवर करते हैं।


मैंने यह देखा, लेकिन AppleScript टर्मिनल स्क्रिप्ट नहीं है। मुझे लगता है कि आप कर सकते हैं: "टर्मिनल पर जाएं और x कमांड लिखें"। खैर, .bat शैली नहीं है (और थोड़ा और कठिन)
Rodrigo

ऐसा लगता है कि यूनिक्स शेल स्क्रिप्ट वह है जो आप खोज रहे हैं।
क्रिश्चियन कोरिआ

0

शैल लिपि। मुझे नहीं लगता कि अलग से पूछें तो गहराई से चर्चा करने के लिए उपयुक्त स्थान होगा लेकिन यहां एक बहुत विस्तृत मार्गदर्शिका है: http://tldp.org/LDP/abs/html/index.html

Mac OS X UNIX प्रमाणित है 10.5 (दाएं?) से। इसलिए यह ज्ञान यहां Linux और अन्य UNIX जैसे OS पर भी लागू है।

(कम जटिल तरीके से, मैक ओएस एक्स का ऑटोमैटर बहुत ज्यादा शक्तिशाली है, जैसा कि AppleScript एडिटर है, दोनों प्रोग्राम के साथ शेल स्क्रिप्ट और अन्य कमांड निष्पादित कर सकते हैं, और उन्हें लॉन्चपैड या साझा करने के लिए एक सुविधाजनक .app बंडल में लपेट सकते हैं। दोस्त)


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

और "उपयुक्त स्थान" से मुझे लगता है कि शेल पटकथा लेखन वास्तव में सबसे अच्छा SuperUser पर अधिक चर्चा की है: superuser.com/questions/tagged/shell-script
Swizzlr

-1

मैंने कुछ दिन पहले एक वीडियो बनाया जिसमें यह बताया गया है। आशा है कि यह मदद करता है: http://www.youtube.com/watch?v=Q2jxpJAlsyg


क्या आप इसे यहाँ स्पष्ट कर सकते हैं, न कि केवल एक लिंक
user151019

-2

मैक के लिए .sh फ़ाइल उर्फ ​​शैल स्क्रिप्ट है


लेकिन इसे खोजक से कॉल करते समय, आप उपयोग करना चाहेंगे .command.shखोजक (डिफ़ॉल्ट रूप से) से एक अनहेल्ड फ़िलेपाइप है।
जेसन सलज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.