विंडोज़ में मैं सीएमडी (आमतौर पर) के लिए कमांड वाली फाइल लिख सकता हूं .cmd या .bat फ़ाइलें) । जब मैं उन फाइलों पर क्लिक करूंगा तो यह खुल जाएगी cmd.exe और उन्हें चलाएं कमांड फ़ाइल में शामिल है ।
मैं उबंटू में यह कैसे करूंगा?
मुझे यकीन है कि यह एक डुप्लिकेट है, लेकिन मुझे अपना जवाब नहीं मिल रहा है । यह इन सवालों के समान है, लेकिन वे सवाल का जवाब नहीं देते हैं:
सबसे पहले, फ़ाइल लिखना सबसे आम है, सुनिश्चित करें कि पहली पंक्ति है
#!/bin/bash
फिर फाइल को सेव करें । अगला इसे निष्पादन योग्य का उपयोग करके चिह्नित करें chmod +x file
फिर जब आप क्लिक करते हैं (या टर्मिनल से फ़ाइल चलाते हैं) तो कमांड निष्पादित किए जाएंगे । सम्मेलन द्वारा इन फ़ाइलों में आमतौर पर कोई एक्सटेंशन नहीं होता है, हालांकि आप उन्हें समाप्त कर सकते हैं .sh या किसी अन्य तरीके से ।
कुछ नोट्स:
किसी भी (और मेरा मतलब है कि कोई भी) फ़ाइल को लिनक्स में निष्पादित किया जा सकता है बशर्ते पहली पंक्ति उस प्रोग्राम का एक पथ है जिसे फ़ाइल की व्याख्या करनी चाहिए । सामान्य उदाहरणों में शामिल हैं /bin/python, /bin/sh, /bin/dash, लेकिन विषम गेंद की चीजें भी काम करती हैं /bin/mysql
बैश एक पूर्ण भाषा है । यह सीएमडी की तुलना में काफी जटिल है । विंडोज में एक्सई । इसकी एक मजबूत प्रोग्रामिंग भाषा है जो फ़ंक्शन, लूप, सशर्त, स्ट्रिंग ऑपरेशन आदि का समर्थन करती है ।
ये दस्तावेज यदि आप समस्याओं में भाग लेते हैं तो मदद कर सकते हैं ।
यदि आप फ़ाइल को निष्पादन योग्य नहीं बनाना चाहते हैं तो आप इसे बैश के तर्क के रूप में पास करके चला सकते हैं: bash file/to/run.sh
एक साधारण बैश उदाहरण
#!/bin/bash echo "This is a shell script" ls -lah echo "I am done running ls" SOMEVAR='text stuff' echo "$SOMEVAR"
दूसरी विधि कमांड का उपयोग करके रिकॉर्ड करना है script. भागो script फिर बस सामान करो। जब आप सामान प्रकार कर रहे हैं exit और स्क्रिप्ट आपके द्वारा किए गए सभी "सामान" के साथ आपके लिए एक फ़ाइल उत्पन्न करेगी । यह कम उपयोग किया जाता है लेकिन मैक्रोज़ जैसी चीजों को बनाने के लिए काफी अच्छा काम करता है । man script अधिक जानकारी के लिए.
आपका मतलब शेल स्क्रिप्ट का उपयोग करके फ़ाइल में लिखना है? यहाँ कुछ तरीके हैं:
touch file
यह विधि केवल एक फ़ाइल बनाएगी, लेकिन यदि फ़ाइल पहले से मौजूद है, तो यह संशोधन तिथि को उस समय में बदल देती है जब आपने उस कमांड का उपयोग किया था ।
echo "text" > file
वह विधि सामग्री को अधिलेखित कर देती है file को text. यदि आप कोई फ़ाइल साफ़ करना चाहते हैं, तो आप बस यह कर सकते हैं:
echo "" > file
कहते हैं कि आप इसे एक से अधिक पंक्ति लिखना चाहते हैं, और आप हजारों का उपयोग नहीं करना चाहते echo कमांड, आप इस कमांड का उपयोग करेंगे:
cat << EOF > filetesttest1foobarEOF
यह आपको एक कमांड में कई लाइनें लिखने में सक्षम बनाता है । की सामग्री file तो यह होगा:
testtest1foobar
यदि आप किसी फ़ाइल में जोड़ना चाहते हैं, तो बदलें > को >>.
आशा है कि यह मदद करता है!
संपादित करें: ओह, मैं देख रहा हूँ, तो आप जीएडिट में फ़ाइल लिखना होगा, का उपयोग कर .sh> एक्सटेंशन (वैकल्पिक, लेकिन यह एक अच्छा विचार है), और फिर एक फ़ाइल प्रबंधक पर, फ़ाइल पर राइट क्लिक करें, गुण-अनुमतियां चुनें,और जांचें Allow executing file as program. फिर आप उस पर डबल-क्लिक कर सकते हैं और यह चलेगा:) । साथ ही, यदि आप टर्मिनल में ऐसा करना चाहते हैं, तो आप इसे निष्पादन योग्य बनाने के लिए इस कमांड को चला सकते हैं (आप प्रीपेंड करना चाह सकते हैं sudo यदि यह आपका नहीं है):
विंडोज बैच फ़ाइलों के बराबर शेल स्क्रिप्ट है, और एक उत्कृष्ट आरंभ गाइड है बैश स्क्रिप्टिंग.
अधिकांश भाग के लिए, कमांड लाइन पर आप जो कमांड दर्ज कर सकते हैं, उन्हें शेल स्क्रिप्ट में रखा जा सकता है ।
कुछ चीजें जो विंडोज बैच फाइलों से अलग हैं:
विभिन्न कमांड दुभाषिए हैं, जिन्हें गोले कहा जाता है । डिफ़ॉल्ट बैश है, लेकिन यदि आप रुचि रखते हैं, तो अन्य हैं, जैसे कि जेडएसएच, केएसएच, डैश, पर्ल, पायथन, आदि ।
शेल स्क्रिप्ट चलाने के लिए, आपको फ़ाइल को निष्पादन योग्य बनाना होगा, जिसके साथ आप कर सकते हैं chmod +x <filename>
उबंटू में, वर्तमान निर्देशिका प्रोग्राम खोज पथ नहीं है, इसलिए आपको चलाने की आवश्यकता है ./<filename>, नहीं <filename>
चर नाम हैं $<varname>, नहीं %<varname>%
शेल स्क्रिप्ट में कमांड डिफ़ॉल्ट रूप से मुद्रित नहीं होते हैं, जैसा कि बैच फ़ाइल में होता है ।
फ़ाइल नाम का विस्तार हो सकता है .sh या (अधिक प्रथागत) आपको एक्सटेंशन का उपयोग करने की आवश्यकता नहीं है । डाल दिया #!/bin/bash फ़ाइल की पहली पंक्ति पर, जो उबंटू को बताता है कि फ़ाइल को चलाने के लिए किस प्रोग्राम का उपयोग करना है ।
टिप्पणियाँ के साथ शुरू #, नहीं rem.
आशा है कि यह मदद करता है और मजेदार स्क्रिप्टिंग है!