2010-07-01 5 views
6

मैं ऐप्पलस्क्रिप्ट कमांड बनाने के बारे में कैसे जाउंगा कि जब मैं सिर्फ स्क्रिप्ट चलाता हूं (या खोजक में डबल क्लिक करता हूं?), तो यह टर्मिनल कमांड का एक सेट चलाएगा? आदेशों का सेट पूरी तरह से MySQL को हटा देता है, और यह लगातार उन्हें लिखने के लिए दर्द बन गया है। आदेशों हैं:टर्मिनल कमांड का सेट चलाने के लिए AppleScript ऐप कैसे बनाएं

sudo rm /usr/local/mysql 
sudo rm -rf /usr/local/mysql* 
sudo rm -rf /Library/StartupItems/MySQLCOM 
sudo rm -rf /Library/PreferencePanes/My* 
sudo rm -rf /Library/Receipts/mysql* 
sudo rm -rf /Library/Receipts/MySQL* 
sudo rm /etc/my.cnf 

भी एक और आदेश sudo nano /etc/hostconfig एक फ़ाइल को खोलता है कि नहीं है और मैं फ़ाइल से एक लाइन को हटाने की आवश्यकता है, लेकिन ऐसा लगता है कि जैसे कि यह कोड के लिए बहुत कठिन हो जाएगा, इसलिए मुझे लगता है मैं कर सकते हैं हाथ से करो। लेकिन यह एक ही स्क्रिप्ट के साथ स्वचालित रूप से ऐसा करने में एक बड़ी मदद होगी।

क्या यह सिर्फ इन आदेशों का एक समूह होगा?

do shell script (...) 

धन्यवाद, ह्रिस्टो

उत्तर

14

हाँ, आप do shell script का प्रयोग करेंगे।

हालांकि, उन आदेशों के लिए जहां आप सुपर उपयोगकर्ता (sudo) के रूप में निष्पादित करते हैं, आप इसके बजाय with administrator privileges का उपयोग करेंगे। तो, sudo rm /usr/local/mysql के लिए आपको बस इतना चाहते हैं:

do shell script "rm /usr/local/mysql" with administrator privileges 

तो आदेशों की अपनी सूची लंबी है, तो यह और भी आसान एक भी खोल स्क्रिप्ट फ़ाइल में अपने सभी आदेशों डाल दिया, और फिर do shell script का उपयोग कर कि खोल स्क्रिप्ट निष्पादित करने के लिए हो सकता है :

do shell script "/path/to/shell/script" with administrator privileges 
+0

जब मैं क्या 'कर खोल स्क्रिप्ट" rm/usr/स्थानीय/mysql "व्यवस्थापक privileges' के साथ, यह मुझे एक त्रुटि देता है और मुझसे कहता है कि '/ usr/local/mysql' एक निर्देशिका है। यह वास्तव में एक अलग निर्देशिका के लिए एक प्रतीकात्मक लिंक है ... समस्या क्या है? – Hristo

+0

'rm -rf/usr/local/mysql' – indragie

14

आप वास्तव में इस के लिए AppleScript उपयोग करने की आवश्यकता नहीं है - बस एक पाठ फ़ाइल में सभी खोल आदेशों रख दिया और यह एक .command प्रत्यय देने के लिए और यकीन है कि यह निष्पादन योग्य हो (उदा chmod +x my_script.command) - यह यह कर देगा खोजक में डबल-क्लिक करने योग्य।

+4

' .command' प्रत्यय पर्याप्त नहीं है - आपको एक शेबैंग भी शामिल करना होगा (यानी '#!/Bin/bash' को पहली पंक्ति के रूप में जोड़ें पाठ फ़ाइल) और फ़ाइल को निष्पादित अनुमति जोड़ें (यानी 'chmod + x/path/to/file.command' चलाएं)। बीटीडब्लू, इस बनाम ऐप्पलस्क्रिप्ट का उपयोग करने का बड़ा फायदा यह है कि यह टर्मिनल में चलता है, इसलिए आप वास्तव में स्क्रिप्ट के साथ बातचीत कर सकते हैं (यदि आप फ़ाइल को संपादित करने के लिए 'नैनो' का उपयोग करना चाहते हैं तो बहुत महत्वपूर्ण है)। –

+0

@ गॉर्डन: हाँ, अच्छा बिंदु, मुझे यह कहना चाहिए था कि इसे एक शेबांग लाइन के साथ एक निष्पादन योग्य खोल स्क्रिप्ट होना चाहिए। –

+1

नोट, हालांकि, जब एक .command में 'sudo' का उपयोग करते समय आपको अभी भी अपना पासवर्ड दर्ज करना होगा। यदि आप स्क्रिप्ट को अपने आप चलाने के लिए चाहते हैं, तो इस लिंक के बारे में कुछ अच्छी युक्तियां हैं: http://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in- एक-पटकथा के बिना किया जा रहा है-पूछा-एक पासवर्ड के लिए – ericsoco

0

मुझे लगता है कि .scpt फ़ाइलें सर्वश्रेष्ठ काम करती हैं लेकिन यह केवल एक वरीयता है।

खोलें "स्क्रिप्ट संपादक" और निम्न आदेश जोड़ें:

sudo rm -rf /usr/local/mysql; sudo rm -rf /usr/local/mysql*; sudo rm -rf /Library/StartupItems/MySQLCOM; sudo rm -rf /Library/PreferencePanes/My*; sudo rm -rf /Library/Receipts/mysql*; sudo rm -rf /Library/Receipts/MySQL*; sudo rm /etc/my.cnf; say job completed successfully" with administrator privileges 
संबंधित मुद्दे