जवाबों:
पहले टर्मिनल में टाइप करके स्क्रिप्ट को निष्पादन योग्य बनाएं:
chmod a+x (yourscriptname)फिर, फाइंडर में, अपनी फ़ाइल पर राइट-क्लिक करें और "ओपन विथ" और फिर "अन्य ..." चुनें।
यहां आप उस एप्लिकेशन का चयन करते हैं जिसे आप फ़ाइल में निष्पादित करना चाहते हैं, इस मामले में यह टर्मिनल होगा। टर्मिनल का चयन करने में सक्षम होने के लिए आपको "अनुशंसित एप्लिकेशन" से "सभी एप्लिकेशन" पर स्विच करना होगा। (यूटिलिटीज फोल्डर में Terminal.app एप्लिकेशन पाया जा सकता है)
ध्यान दें कि जब तक आप टर्मिनल में चलाने के लिए इस एक्सटेंशन के साथ सभी फाइलों को जोड़ना नहीं चाहते हैं, तब तक आपको "ऑलवेज ओपन विथ" चेक नहीं करना चाहिए।
.commandहै , फाइंडर से डिफ़ॉल्ट निष्पादन योग्य है, फाइंडर को निर्देश देने की आवश्यकता के बिना कि इसे कैसे खोलें।
.commandफ़ाइल एक्सटेंशन में अपनी स्क्रिप्ट का नाम बदलें ।
क्या आपने .commandफ़ाइल नाम एक्सटेंशन का उपयोग करने की कोशिश की है ?
chmod +x) की आवश्यकता है, लेकिन .commandविस्तार पहले से ही टर्मिनल से जुड़ा हुआ है। महान समाधान, धन्यवाद
OSX 10.10 (योसेमाइट) और चूंकि कम से कम OS X 10.8 (माउंटेन लायन) , व्यवहार तब होता है जब आप फाइंडर से निष्पादन योग्य स्क्रिप्ट खोलते हैं (डबल-क्लिक करते हैं) :
.command साथ नहीं :
Preferences... > Profilesआप स्क्रिप्ट से बाहर निकलने पर विंडो को स्वचालित रूप से बंद करने का विकल्प चुन सकते हैं ।cd -- "$(dirname "$BASH_SOURCE")" शबंग लाइन के ठीक बादcd -- "$(dirname "$0")"।chmod +x <script>टर्मिनल में चलाकर इसे निष्पादन योग्य बनाएं ; अन्यथा, आपको निम्न लक्षण दिखाई देंगे:.command: खोजक एक भ्रामक त्रुटि संदेश प्रदर्शित करता है जो सुझाव देता है कि समस्या को ठीक किया जा सकता है File > Get Info, जो कि सत्य नहीं है - chmod +xऊपर वर्णित विधि का उपयोग करें ।#!/bin/bash): व्यवहार है के रूप में यदि प्रत्यय रहे थे .sh- नीचे देखें।.sh साथ लिप्यांतर , निष्पादन योग्य है या नहीं:
TextEdit.appया, यदि स्थापित है, के साथ Xcode.app।.scpt साथ या .applescript(भले ही वे खुद को निष्पादन योग्य के रूप में चिह्नित कर रहे हों, जो सामान्य रूप से मामला नहीं है):
[Apple]Script Editor[१] निष्पादन योग्य का अर्थ है: निष्पादन योग्य अनुमति बिट (एस) के साथ एक स्क्रिप्ट जो सेट और कॉलिंग उपयोगकर्ता - फ़ाइल के स्वामित्व के सापेक्ष - इसलिए संभवतः इसे निष्पादित करने की अनुमति दी जा रही है।
आप का उपयोग करते हैं chmod a+xस्थापित करने के लिए सभी अनुमति बिट्स (जो आम है), किसी को भी यह आह्वान कर सकते हैं (यह मानते हुए वे भी करने की अनुमति है पढ़ के आधार पर फ़ाइल पढ़ने की अनुमति बिट (रों) और फ़ाइल के स्वामित्व)।
osascriptतो आप .commandप्रोफ़ाइल के साथ मैन्युअल रूप से गड़बड़ करने के बजाय फ़ाइल के भीतर शामिल कर सकते हैं ।
osascript -e '...'है एक स्क्रिप्ट के अंत में एक कमांड जोड़ने ? विशिष्ट कमांड क्या है, और क्या यह सुनिश्चित करता है कि स्क्रिप्ट के सबसे सामने वाले टैब में न चलने पर भी राइट टैब बंद हो?
osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &... यह हर परिदृश्य में काम नहीं कर सकता है, हालांकि रीडायरेक्ट। अंत वास्तव में महत्वपूर्ण है - ओसस्क्रिप्ट को अन्यथा आसानी से अनुकूलित किया जा सकता है (जैसे कि विंडो को टैब में बदलने की आवश्यकता हो सकती है यदि वह आपका टर्मिनल डिफ़ॉल्ट व्यवहार है, आदि)।
.commandप्रोफाइल सेटिंग के बावजूद स्क्रिप्ट फ़ाइल के चलने के बाद टर्मिनल विंडो / टैब को बंद नहीं करना संभव है ?
bashस्क्रिप्ट है, read -p 'Press Return to close this window.'तो अंतिम विवरण के रूप में जोड़ें ।
वैकल्पिक रूप से, आप प्लैटिपस का उपयोग करके अपनी स्क्रिप्ट से एक नियमित मैक ओएस एक्स एप्लिकेशन बना सकते हैं
आसान तरीका यह है कि आप एक्सटेंशन को एक्सटेंशन में बदलें .commandया न करें।
लेकिन यह टर्मिनल खोल देगा, और आपको इसे बंद करना होगा। यदि आप कोई आउटपुट नहीं देखना चाहते हैं, तो आप मैक एप्लिकेशन बनाने के लिए ऑटोमेटर का उपयोग कर सकते हैं जिसे आप डबल क्लिक, डॉक में जोड़ सकते हैं, आदि।
Automatorएप्लिकेशन खोलेंRunपरीक्षण करने के लिए ऊपरी दाएं कोने में स्थित बटन पर क्लिक करें ।File > Save अनुप्रयोग बनाने के लिए।प्लैटिपस जैसे तीसरे पक्ष के ऐप का उपयोग करने की आवश्यकता नहीं है।
बस स्क्रिप्ट एडिटर के साथ एक ऐप्पल स्क्रिप्ट बनाएं और do shell script "shell commands"डायरेक्ट कमांड कॉल या निष्पादन योग्य शेल स्क्रिप्ट फ़ाइलों के लिए कमांड का उपयोग करें, संपादन योग्य स्क्रिप्ट फ़ाइल को कहीं सुरक्षित रखें और फिर इसे एप्लिकेशन स्क्रिप्ट बनाने के लिए निर्यात करें। ऐप स्क्रिप्ट बार फ़ोल्डर में डबल क्लिक या चयन द्वारा लॉन्च-सक्षम है।
आप RCDefaultApp का उपयोग करके फ़ाइल एक्सटेंशन द्वारा डिफॉल्ट भी सेट कर सकते हैं:
http://www.rubicode.com/Software/RCDefaultApp/
संभावित रूप से आप iTerm / Terminal आदि में खोलने के लिए .sh को सेट कर सकते हैं, इसके लिए उपयोगकर्ता की अनुमति की आवश्यकता होगी, जैसे
chmod u+x filename.sh