मैं मल्टी कमांड के साथ स्क्रिप्ट कैसे बना सकता हूं


0

मैंने OS X पर एक स्क्रिप्ट बनाने की कोशिश की। मैं कुछ गलत करता हूं। मैं 2 कमांड निष्पादित करना चाहता हूं:

defaults write com.apple.finder CreateDesktop -bool true

तथा

killall Finder

मैंने फ़ाइल को सहेजा और चोद दिया लेकिन मुझे कुछ त्रुटियां मिलीं:

/Users/max/Desktop/visible.command ; exit;
MacBook-Pro-de-Maxime:~ max$ /Users/max/Desktop/visible.command ; exit;
/Users/max/Desktop/visible.command: line 1: {rtf1ansiansicpg1252cocoartf1343cocoasubrtf160: command not found
/Users/max/Desktop/visible.command: line 2: syntax error near unexpected token `}'
/Users/max/Desktop/visible.command: line 2: `{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;\f1\fmodern\fcharset0 Courier;}'
logout

उत्पादन

आपके सहयोग के लिए धन्यवाद!


स्पष्ट रूप से आपकी स्क्रिप्ट में लाइन 1 पर "rtfiansiansicpg1252cocoartf1343cocoasubrtfr160" लाइन है। आपको अपनी स्क्रिप्ट को एक सादे पाठ फ़ाइल को सहेजना चाहिए। क्या आपने अपनी कमांड फ़ाइल को सहेजने के लिए TextEdit या Pages का उपयोग किया है? यह कारण हो सकता है।
Rilakkuma

जवाबों:


3

आपने अपनी फ़ाइल को रिच टेक्स्ट फ़ॉर्मेट फ़ाइल (.rtf) के रूप में सहेजा है

TextEdit.app में

अपनी फ़ाइल खोलें और कोडिंग के लिए इसे सही प्रारूप में बदलने के लिए प्लेन टेक्स्ट मेनू का उपयोग करें।

प्लान टेक्स्ट के अलावा किसी अन्य चीज़ का उपयोग करने का मतलब होगा कि फ़ाइल में शैलियों के लिए प्रारूपण कोड और ऐसे शामिल हैं जो शेल परत को दिखाई देते हैं लेकिन फ़ाइल को देखते समय उपयोगकर्ता को नहीं।

उदाहरण के लिए।

एक्सटेंशन के साथ रिच टेक्स्ट फॉर्मेट फाइल अभी भी एक रिच टेक्स्ट फाइल है

यहाँ छवि विवरण दर्ज करें


कमांड लाइन से इसे पढ़ना।

$ cat foo.command

{\rtf1\ansi\ansicpg1252\cocoartf1344\cocoasubrtf720
{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;}
{\colortbl;\red255\green255\blue255;\red43\green39\blue19;\red234\green234\blue234;\red37\green127\blue159;
}
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\pard\pardeftab720

\f0\fs26 \cf2 \cb3 \expnd0\expndtw0\kerning0
defaults write com.apple.finder \cf4 \expnd0\expndtw0\kerning0
CreateDesktop\cf2 \expnd0\expndtw0\kerning0
 -bool true}

सादे पाठ में बदलें और पुनः सहेजा गया।

यहाँ छवि विवरण दर्ज करें


यहाँ छवि विवरण दर्ज करें


कमांड लाइन से पढ़ें।

$ cat foo.command
defaults write com.apple.finder CreateDesktop -bool true

(उदाहरण केवल चित्रण के लिए हैं न कि वास्तविक कोडिंग कैसे करें)


-1

यदि आपको स्क्रिप्ट के माध्यम से किसी भी दो कमांड को चलाने की आवश्यकता है, तो आप बस कुछ इस तरह से बना सकते हैं, एक टेक्स्ट एडिटर खोलें और जोड़ें:

#!/bin/bash
echo foo && echo bar

इसे foo.sh के रूप में सहेजें, फिर:

$ sh ./foo.sh
foo
bar

&&आपको दो आदेशों को निष्पादित करने की अनुमति देता है, एक के बाद एक, या आप बस अलग-अलग लाइनों पर कमांड डाल सकते हैं।

अपने मामले में, के echo fooसाथ defaults write com.apple.finder CreateDesktop -bool trueबदलें और echo barसाथ बदलें killall Finder। आपको शायद डिफॉल्ट्स को बदलने और pids को मारने के बाद से एलिवेटेड प्रिव्यूल्स के foo.shसाथ चलने की आवश्यकता होगी $ sudo sh ./foo.sh

आपको इसे निष्पादन योग्य भी बनाना पड़ सकता है:

chmod +x foo.sh

Https://stackoverflow.com/questions/8409946/how-do-i-make-this-file-sh-executable-via-double-click देखें


क्यों होता है पतन?
एरिक डोरसी

क्षमा करें, मैंने आपके उत्तर को अस्वीकार कर दिया। जाहिर है कि विषय-वस्तु पहले से ही जानती है कि कमांड के साथ एक टेक्स्ट फाइल बनाना उसे लक्ष्य तक ले जाएगा और पूछता है कि उसके कार्य क्यों नहीं हुए। आपका उत्तर इस कारण से जानकारीपूर्ण नहीं है। इसके अलावा, (क्षमा करें, बहुत picky होने के नाते) किसी पाठ फ़ाइल को बचाने के लिए संघर्ष करने वाले व्यक्ति के लिए "पिड" जैसी चीजों का उल्लेख नहीं करेगा।
Rilakkuma

@ रोलकुमा ओपी में कहा गया है: "मैं एक स्क्रिप्ट कैसे बना सकता हूं" और "मैं 2 कमांड निष्पादित करना चाहता हूं" &&दो कमांड निष्पादित करता है, और मैंने इसे स्क्रिप्ट में चलाने का एक उदाहरण दिया। यह कैसे उनके सवाल का जवाब नहीं है?
एरिक डोरसी

इस पर बहस करने के लिए नहीं जा रहा है, लेकिन एक और लाइन है: "मैंने फ़ाइल को सहेजा और उसे चकमा दिया लेकिन मुझे कुछ त्रुटियां मिलीं"।
Rilakkuma

तो ओपी उसे हल करने में मदद नहीं करने के लिए क्या कर रहा है, ऐसा करने के और अधिक उदाहरण कैसे देता है?
एरिक डोरसे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.