जवाबों:
आप Windows CMD.EXE पर हैं (त्रुटि संदेश से)। यह कमांड निष्पादित करने के लिए एक अलग सिंटैक्स का उपयोग करता है। आपको sh name.sh
यह मानकर उपयोग करने की आवश्यकता होगी कि आपने Cygwin या समान इंस्टॉल किया है।
स्पष्ट करने के लिए, विंडोज़ के पास .sh फ़ाइलों का समर्थन करने के लिए एक अंतर्निहित उपयोगिता नहीं है। ऐसे चलाने के लिए, आपको सिग्विन जैसे तीसरे पक्ष के उपकरण को स्थापित करना होगा ।
आप Windows कमांड प्रॉम्प्ट पर लिनक्स कमांड चलाने की कोशिश कर रहे हैं।
लिनक्स पर आगे स्लैश एक पथ विभाजक है। विंडोज पर बैकस्लैश एक पथ विभाजक है और फॉरवर्ड स्लैश आमतौर पर एक तर्क को इंगित करता है।
इसलिए, विंडोज सोचता है कि आप "नामक एक कमांड चलाने की कोशिश कर रहे हैं।" और इसे तर्क "/name.sh" पार्स कर रहा है। सही सम्मेलन "। \ Name.sh" होगा। इसके अतिरिक्त विंडोज स्वचालित रूप से आपके आदेश के लिए वर्तमान निर्देशिका खोजेगा ताकि आप "name.sh" टाइप कर सकें।
अगली समस्या जो आपको सामने आएगी वह यह है कि विंडोज को यह नहीं पता है कि एक शा स्क्रिप्ट क्या है, फिर से यह एक लिनक्स चीज है। यदि आप वास्तव में चाहते हैं या श स्क्रिप्ट चलाने की आवश्यकता है, तो आप साइगविन को स्थापित करके इसे हल कर सकते हैं।
हालाँकि, आपकी पिछली टिप्पणियों में से किसी एक को देखते हुए आप स्क्रिप्ट को name.bat में बदल सकते हैं और "#! / Bin / sh" लाइन हटा सकते हैं। अब आपके पास एक बैच फ़ाइल है जिसे विंडोज को समझना चाहिए। आप यहाँ बैच फ़ाइलों के बारे में अधिक पढ़ सकते हैं ।
वैकल्पिक रूप से आप अंधेरे की ओर मुड़ सकते हैं और लिनक्स स्थापित कर सकते हैं। प्रॉम्प्ट से:
sh runide.sh
या
sudo sh runide.sh
आपका कार्यक्रम चलेगा और आपके पास एक बेहतर प्रणाली भी होगी।
विंडोज के लिए .git डाउनलोड और इंस्टॉल करें
डेस्कटॉप पर राइट क्लिक करें और कहें "git bash here"
अपनी स्क्रिप्ट को यूनिक्स में निष्पादित करें
किया हुआ!
सावधानी: कई कमांड विंडोज़ पर काम नहीं करेंगे! लेकिन फिर भी, बहुत सारे मूल सामान काम करेंगे।
यदि आपको नियमित रूप से उस स्क्रिप्ट की आवश्यकता है तो आप शॉर्टकट (अपने डेस्कटॉप जैसे) पर बनाना चाहते हैं:
एक शॉर्टकट बनाएं करने के लिए mintty.exe
अपने डेस्कटॉप पर
शॉर्टकट के गुणों को संपादित करें और लक्ष्य बदलें (रास्ता रखें):
C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
आप अपनी कार को गैसोलीन के बजाय संतरे के रस पर चलाने की कोशिश कर रहे हैं। विंडोज़ समान कमांडों को .ix या लिनक्स / zOS यूनिक्स सबसिस्टम / * ix शेल स्क्रिप्ट के साथ .bat या .cmd फ़ाइलों में संग्रहीत करता है क्योंकि ऑपरेटिंग सिस्टम के ये दो परिवार डीईसी पीडीपी-एक्स मशीनों के एक सामान्य पूर्वज को साझा करते हैं।
यदि आप तत्काल संतुष्टि चाहते हैं, तो आपको "sh.exe" प्रोग्राम या "csh.exe" या "bash.exe" प्रोग्राम (tsh.exe किसी को भी) प्रदान करने वाला वातावरण स्थापित करना होगा?
वैकल्पिक रूप से, यदि आप यूनिक्स स्क्रिप्ट कमांड्स को जानते हैं, तो बहुत अच्छी तरह से, और आप विंडोज .cmd और .bat फाइल कमांड्स को जानते हैं, बहुत अच्छी तरह से, आप .sh फाइल को .bat या .cmd फाइल में अनुवाद कर सकते हैं। फिर भी, आप अक्सर अधिक यूनिक्स-स्टाइल वाले कार्यक्रमों का सामना करेंगे, जिनके पास विंडोज के तहत कोई समकक्ष नहीं है - grep, sed, vi, emacs, आदि। इस प्रकार, CygWin (कोई न्यूनतम नहीं) स्थापित करने के लिए कॉल - सिर्फ शेल और यूनिक्स पाने के लिए उपकरण। इन विशेष अवसरों के लिए, इसे फ्लैश-ड्राइव पर रखें।
किसी ने एमएस-डॉस के बारे में कुछ कहा जो /
आज्ञाओं के लिए और \
रास्तों का उपयोग कर रहा है। यह थोड़ा भ्रामक है। मेरे उदाहरण को देखो:
C:\myfoo\foo\>cd../..
C:\myfoo\foo\>cd..\..
प्रभाव में कोई अंतर नहीं है। हां, यह सभी परिचालनों के लिए सही नहीं है - वास्तविक उत्तर बस नहीं है , या साइगविन या एसएसएचडी के बिना आप नहीं कर सकते।
मैं केवल जानते हैं, क्योंकि मैं stupidly आधे से एक दिन बिताया यह पता लगाने का प्रयास कर रहे if then fi
हैं और eval
, exec
के साथ क्या -Djava.something
जब कहा जाता है।
Windows के लिए Github का उपयोग करें। इसमें सभी यूनिक्स पर्यावरण निष्पादनयोग्य शामिल हैं।
मुझे यूनिक्स यूटिल नामक एक अलग और आसान उपाय मिला ।
डाउनलोड करें और इसे C: ड्राइव पर अनज़िप करें। path
शामिल करने के लिए पर्यावरण चर सेट करें C:\UnixUtils\usr\local\wbin
।
यह महत्वपूर्ण है। करने के लिए पथ सेट नहीं हैC:\UnixUtils\bin
पूर्णता के लिए, मैं विंडोज़ 10. के लिए एक नए "लिनक्स के लिए विंडोज सबसिस्टम" सुविधा का उल्लेख करना चाहता हूं। विवरण http://www.howtogeek.com/249966/how-to-install-and-use-the-linux- में वर्णित हैं । बैश-खोल-ऑन-windows-10 /
ध्यान दें, इसके लिए "डेवलपर मोड" स्विच को सक्रिय करने और "विंडोज सबसिस्टम लिनक्स (बीटा)" विकल्प को सक्षम करने की आवश्यकता है।
अपने लिए मैंने पाया कि विंडोज इंस्टॉलेशन के लिए Git (जो मैं वैसे भी उपयोग कर रहा हूं) पर्याप्त है।
यह एक पुराना धागा है, लेकिन विंडोज 10 चलाने वालों के लिए। कंट्रोल पैनल से सिर्फ खुली खिड़कियों के फीचर्स 'चालू विंडोज फीचर ऑन या ऑफ'
'लिनक्स के लिए विंडोज सबसिस्टम' की सुविधा चुनें। स्थापित करने के बाद, आपके पास 'बैश' है और आप बैश के भीतर भी मूल लिनक्स सर्वरों को कॉन्फ़िगर कर सकते हैं। और हां, बाश के भीतर श कमांड भी काम करता है।
यह संभव है कि समस्या वास्तव में फ़ाइल के भीतर है name.sh
- आप .
कमांड का उपयोग करने की कोशिश कर रहे हैं, लेकिन यह एक प्रकार का शेल (जैसे csh
, मुझे लगता है) चलाने का प्रयास कर रहा है, जिसमें यह एक वैध कमांड नहीं है।
तो: name.sh
सही से शुरू होता है #!/bin/sh
(यदि आप वास्तव में चलाने की कोशिश कर रहे हैं sh
)?
ठीक है, इसमें बहुत कुछ गलत है - #! / bin / sh को ड्रॉप करें, और एक्सटेन्शन को बैट में बदलें, और यह कुछ और फिक्स के साथ काम कर सकता है। तो आप बस इसे इसके नाम से भी लागू कर सकते हैं।
एक यूनिक्स शेल स्क्रिप्ट का सिंटैक्स, और एक विंडोज़ बैच फ़ाइल भी समान नहीं हैं। साइबरविन, या अनएक्सूटिल्स के साथ खिलवाड़ करने का एक लोड कुछ ऐसा बना सकता है जो दोनों में काम करेगा, लेकिन जब तक आप पूरी तरह से निश्चित नहीं हैं कि पर्यावरण हमेशा एक जैसा है, यह सिरदर्द के लायक नहीं है
drop the #!/bin/sh, and change the extention to bat, and it might work with a few more fixes.
क्या?! मुझे संदेह है कि आपने कभी यह कोशिश नहीं की ... विंडोज पर, यहां तक कि सबसे सरल बैश क्षमताओं को असमर्थित किया जाता है या लंबे समय तक वाक्यविन्यास की आवश्यकता होती है।
यदि आपके घर (या काम) में एक लिनक्स बॉक्स है और उसी नेटवर्क में प्लग किया गया है, और यह नेटवर्क सुरक्षित है, तो यह हो सकता है:
mount //WinMachine/Share LinuxFolder
(IIRC, और सांबा की आवश्यकता है ) के साथ माउंट करें ।खिड़कियों से शेल स्क्रिप्ट चलाने के लिए। पहले कमांड का उपयोग करें: dos2unix तब आप अपने सामान्य कमांड का उपयोग कर सकते हैं: sh runide.sh
यह काम करेगा।
हालांकि यहां मौजूदा समय में जवाब सही थे, Windows 10 है अब वैकल्पिक रूप से शामिल एक पूर्ण बैश खोल चल उबंटू का एक संशोधित संस्करण ।
एक बार निष्पादन योग्य हो जाने पर, स्क्रिप्ट को बैश के भीतर से सामान्य तरीके से चलाया जा सकता है, जैसे:
chmod +x myscript.sh
./myscript.sh
यदि आप विंडोज से सीधे स्क्रिप्ट चलाना चाहते हैं तो आप उसी डायरेक्टरी में शॉर्टकट बना सकते हैं और 'टारगेट' को कुछ इस तरह सेट कर सकते हैं:
C:\Windows\System32\bash.exe -c "./myscript.sh"
यदि आपकी स्क्रिप्ट का पथ शॉर्टकट के स्थान के सापेक्ष है (जैसे ऊपर दिया गया उदाहरण) सुनिश्चित करें कि 'प्रारंभ' फ़ील्ड भी रिक्त है।