क्या विंडोज पर बैश स्क्रिप्ट चलाने का कोई तरीका है? [बन्द है]


100

मैंने खरीदा है और मैं विंडोज 7 अल्टीमेट का उपयोग करता हूं, और मुझे एप्लिकेशन विकसित करने के लिए इसका उपयोग करना पसंद है। नीचे के पक्षों में से एक (हर ओएस के साथ) यह है कि मैं बैश स्क्रिप्ट नहीं चला सकता। क्या कुछ सॉफ़्टवेयर इंस्टॉल करके विंडोज पर बैश स्क्रिप्ट चलाने का एक तरीका है? यह ठीक है अगर यह 100% काम नहीं करता है, लेकिन जब तक सबसे आम कार्यक्षमता उपलब्ध है तब तक यह महान होना चाहिए।


3
@ राजेश कोई और नहीं ...
एमएसनफोर्ड


1
@msanford, इसका कोई मतलब नहीं है। इस डुप्लीकेट को बंद रहने की अनुमति क्यों दी जाती है?
पेसियर

@Pacerier डुप्लिकेट हटा दिया गया था , लगभग निश्चित रूप से इसके लेखक द्वारा क्योंकि mods सवालों को नष्ट नहीं करते हैं शायद यही मेरी टिप्पणी का जिक्र था। मुझे नहीं पता कि लेखक ने इसे क्यों हटाया। इसके अलावा यह 4 साल पहले था।
एमएसनफोर्ड

जवाबों:


80

Cygwin स्थापित करें , जिसमें कई अन्य GNU और यूनिक्स उपयोगिताओं के बीच बैश शामिल है (जिनके बिना इसकी संभावना नहीं है कि बैश बहुत कम हो जाएगा)।

एक अन्य विकल्प मिनगॉव का एमएसवाईएस है जिसमें बैश और अधिक महत्वपूर्ण उपयोगिताओं का छोटा सेट शामिल है जैसे कि awk। व्यक्तिगत रूप से मैंने साइग्विन को प्राथमिकता दी होगी क्योंकि इसमें पर्ल और पायथन जैसे भारी उठाने वाले उपकरण शामिल हैं, जो मुझे लगता है कि मैं इसके बिना नहीं रह सकता, जबकि एमएसवाईएस इन पर स्किम्प करता है और मानता है कि आप इन्हें स्वयं स्थापित करने जा रहे हैं।

अपडेट किया गया : यदि किसी को इस उत्तर में रुचि है और वह एमएस-विंडोज 10 चला रहा है, तो कृपया ध्यान दें कि एमएस-विंडोज 10 में " लिनक्स के लिए विंडोज सबसिस्टम " सुविधा है - जो एक बार सक्षम हो जाती है - आपको उबंटू की उपयोगकर्ता-मोड छवि स्थापित करने की अनुमति देता है और फिर उस पर बैश चलाएं। यह बैश स्क्रिप्ट को डीबग करने और चलाने के लिए उबंटू के साथ 100% संगतता प्रदान करता है, लेकिन यह सेटअप पूरी तरह से विंडोज से स्टैंडअलोन है और आप ड्रम फीचर के माध्यम से फाइलों तक सीमित पहुंच को छोड़कर विंडोज सुविधाओं (जैसे प्रक्रिया और एपीआई) के साथ बातचीत करने के लिए बैश स्क्रिप्ट का उपयोग नहीं कर सकते हैं। ।



1
WSL अब विंडोज 10 एस के लिए पदावनत हो गया ...:
जेवियर गार्सिया मंज़ानो

2
पदावनत नहीं, यह केवल उन विशेषताओं में से एक है जो आपको सस्ता विंडोज " एस मॉल संस्करण" खरीदने पर नहीं मिलती है । यह होम संस्करण, IIRC में भी उपलब्ध नहीं है।
Guss

Git आप विंडोज में कहीं से भी आसानी से बैच फ़ाइल को चलाने की अनुमति youtube.com/watch?v=7keNZT9579k
मुहम्मद Faizan खान

@MuhammadFaizanKhan - Git पोर्ट टू विंडोज, साथ ही कुछ अन्य "कमांड-लाइन ओरिएंटेड" एप्लिकेशन (एक उल्लेखनीय उदाहरण के रूप में Github डेस्कटॉप) भी बैश के विंडोज पोर्ट के साथ आते हैं। ये, अधिक बार नहीं तो मिनगॉव पोर्ट होते हैं (जैसे कि पॉज़िक्स कम्पैटिबिलिटी के लिए मिनगडब्ल्यू और एमएसवाईएस का उपयोग करके संकलित)। विशेष रूप से, यदि आप विंडोज इंस्टॉलेशन के लिए अपने गिट को देखते हैं, तो आपको वह mingw32निर्देशिका दिखाई देगी जिसमें मूल रूप से MSYS शामिल है। तो विंडोज के लिए Git MinGW है जिसमें "nicer" इंस्टॉलर के साथ Git (इसका वैकल्पिक विकल्प MSYS शामिल है): superuser.com/a/1362301/10942
Guss

30

सबसे अच्छा विकल्प मुझे मिल सकता है Git Windows बस इसे स्थापित करें और फिर राइट क्लिक करें और "Git Bash Here" पर क्लिक करें यह एक bash विंडो खोलेगायहां छवि विवरण दर्ज करें

यह इस तरह से एक bash विंडो खोलेगा: यहां छवि विवरण दर्ज करें

और linux कमांड काम करती है ...

मैंने 'श', 'vi', 'ssh', 'कर्ल', आदि ... कमांड की कोशिश की है


यह - यह इतना आसान नहीं है?
कल्पेश सोनी

हाँ वास्तव में काम
गर्विट जैन

4
आप जीआईटी के अतिरिक्त ब्लोट के बिना सिर्फ मिनगॉव को स्थापित कर सकते हैं यदि आप चाहते हैं कि इसका शेल है।
स्टीफन जेड कैमिलेरी

आप इस एक मिनट के ट्यूटोरियल को youtube.com/watch?v=7keNZT9579k
मुहम्मद फैजान खान

25

यदि आपकी तलाश कुछ अधिक मूल है, तो आप सभी यूनिक्स कमांड लाइन टूल को पोर्ट करने के लिए getGnuWin32 का उपयोग कर सकते हैं । वह प्लस विनबैश आपको अधिकांश काम करने वाले यूनिक्स वातावरण देता है। एक बेहतर टर्मिनल एमुलेटर के लिए कंसोल 2 जोड़ें और आप लगभग अपनी खिड़कियों पर नहीं बता सकते हैं!

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

आप अपनी पसंद के डिस्ट्रो के साथ linux VM बनाने के लिए वर्चुअलबॉक्स का उपयोग करना चाह सकते हैं । होस्ट ओएस के साथ एक फ़ोल्डर साझा करने के लिए इसे सेट करें, और आप एक सच्चे लिनक्स विकास पर्यावरण का उपयोग कर सकते हैं, और विंडोज़ के साथ साझा कर सकते हैं। बस उन ईओएल मार्करों के लिए बाहर देखो, वे हर बार फिर से मिलते हैं।


या colinux: colinux.org
Guss


क्या किसी को जीत-बैश परियोजना के उत्तराधिकारी का पता है? यह अब सक्रिय रूप से विकसित नहीं हुआ है और bash v 1.14 पर अटक गया है (bash उचित, इस पोस्ट के रूप में, v 4.4 है)
Bjartr

@Bjartr Microsoft लोगों ने एक फीचर जोड़ा है कि खिड़कियों पर बैश के
स्पेंसर रथबुन

@SpencerRathbun जो केवल विंडोज 10 पर चलेगा, मैं विंडोज 7 पर होता हूं। मुझे भी यकीन नहीं है कि यह कैसे लिनक्स और विंडोज़ के निष्पादनयोग्य और रास्तों को मिलाकर खेलता है, इसलिए यह साइबर बैश से बेहतर (मेरे नजरिए से) कुछ नहीं हो सकता है। ।
Bjartr

11

सर्वोत्तम विकल्प? विंडोज 10. नेटिव बैश सपोर्ट!


2
नहीं, सबसे अच्छा विकल्प नहीं। आप बस उस तरह से लिनक्स चलाते हैं, खिड़कियों पर नहीं मारते हैं - आप उस बैश से विंडोज निष्पादन योग्य नहीं लॉन्च कर सकते हैं (जब तक कि आप इसके साथ इसे हल नहीं करते हैं cbwin... लेकिन यह सिर्फ एक वर्कअराउंड के लिए बहुत अधिक उपद्रव है)।
एकॉस्टिस

'बेस्ट' विकल्प शायद स्वाद का मामला है। तो शायद आप सही कह रहे हैं। हालांकि, यह मुझे अपने विंडोज़ पीसी पर किसी भी (अच्छी तरह से .. सबसे) बैश स्क्रिप्ट को चलाने में सक्षम बनाता है।
पॉल ०५१५

1
आप वर्चुअल सभी बैश स्क्रिप्ट चला सकते हैं - जब तक वे होस्ट ओएस (विंडोज) के साथ बातचीत करने की कोशिश नहीं करते हैं। डब्ल्यूएसएल बैश एक हल्का वर्चुअलाइजेशन सबसिस्टम है जो मूल ईएलएफ बायनेरिज़ (यानी उबंटू) को निष्पादित कर सकता है - लेकिन आप इससे बच नहीं सकते हैं!
एकॉस्टिस

10

आप हमेशा विंडोज के तहत यूनिक्स शेल चलाने के लिए सिगविन स्थापित कर सकते हैं । मैंने विंडो XP के साथ बड़े पैमाने पर Cygwin का इस्तेमाल किया।


Cygwin में UNIX Shell को चलाने के लिए मुझे किस पैकेज की आवश्यकता होगी?
टॉवर

@rFactor Cygwin पेज में सभी आवश्यक घटकों के साथ एक विंडोज़ इंस्टॉलर शामिल है।
स्पेंसर रथबुन

साइगविन साइट बताती है कि क्या पोर्ट किया गया है और इसे कैसे स्थापित किया जाए। यदि आप चाहते हैं कि सभी एक शेल है तो मूल Cygwin इंस्टॉल पर्याप्त होना चाहिए।
माइकल शोपिन

9

जीआईटी-सीमाएं स्थापित करने के बाद ( https://code.google.com/p/gitextensions/ ) आप कमांड प्रॉम्प्ट से .sh फ़ाइल चला सकते हैं। (नहीं ./script.sh की आवश्यकता है, बस इसे एक बल्ले / cmd फ़ाइल की तरह चलाएं) या आप इन्हें मिनगेट गिट बैश शेल का उपयोग करके "पूर्ण" बैश वातावरण में चला सकते हैं।

मैं साइगविन का बहुत बड़ा प्रशंसक नहीं हूं (हां मुझे यकीन है कि यह वास्तव में शक्तिशाली है), इसलिए मेरे लिए इसे सही स्थापित किए बिना खिड़कियों पर बैश स्क्रिप्ट चलाना।


1
मुझे नहीं पता कि गिट-एक्सटेंशन क्या है, लेकिन इसका वर्णन कहता है कि यह गिट के लिए एक ग्राफिकल यूजर इंटरफेस है। आप इस टूल से शेल स्क्रिप्ट कैसे चलाएंगे? शायद आप उन्हें एमएसआई बैश के साथ चलाने का मतलब है कि इसमें शामिल हैं?
दु: खद परिवर्तनीय

बस पुष्टि करने के लिए - गिट-एक्सटेंशन में बैश की एक कॉपी शामिल है और यह इसे पथ में सेट करता है। मैंने bashएक शक्तियुक्त उदाहरण से कोशिश की , विफल रहा, गिट-एक्सटेंशन स्थापित किया और फिर से काम किया और यह मेरे लिए काम कर गया।
rtpHarry

4

मूल रूप से चलाने के लिए, आपको साइगविन का उपयोग करने की आवश्यकता होगी (जो कि मैं विंडोज का उपयोग किए बिना नहीं रह सकता)। तो सही बल्ले से, Cygwin के लिए +1। और कुछ भी असभ्य होगा।

फिर भी, कहा जा रहा है, मैंने हाल ही में विंडोज़ के लिए बॉट स्क्रिप्ट को आसानी से उपयोग करने के लिए उपयोगिताओं के संयोजन का उपयोग करना शुरू कर दिया है, ताकि मेरे एंटी-लिनक्स सहकर्मी आसानी से उन जटिल कार्यों को चला सकें जो GNU उपयोगिताओं द्वारा बेहतर तरीके से नियंत्रित किए जाते हैं।

मैं आमतौर पर एक स्क्रिप्ट को एक फलक में मूल स्क्रिप्ट को खोलकर और दूसरे फलक में एक बैच फ़ाइल लिखकर बहुत ही कम समय में बैच स्क्रिप्ट को पोर्ट कर सकता हूं। मेरे द्वारा उपयोग किए जाने वाले उपकरण इस प्रकार हैं:

मैं इस तथ्य की वजह से GnuWin32 को UnxUtils पसंद करता हूं कि [कोई व्यक्ति मुझे सही कर रहा है अगर मैं गलत हूं तो] GnuWin के बर्तनों को सामान्य रूप से स्थापित किया जाना है, जबकि UnxUtils स्टैंडअलोन बायनेरिज़ हैं जो बस आउट-ऑफ-द-बॉक्स काम करते हैं।

हालांकि, CoreUtils में कुछ परिचित * NIX उपयोगिताओं जैसे कि CURL शामिल नहीं है, जो विंडोज (curl.haxx.se/download.html) के लिए भी उपलब्ध है।

मैं परियोजनाओं के लिए एक फ़ोल्डर बनाता हूं, और हमेशा सेट =। .bat फ़ाइल ताकि मूल CMD शेल कमांड के अलावा कोई अन्य कमांड संदर्भित न हो (साथ ही बैच स्क्रिप्ट के लिए प्रोजेक्ट फ़ोल्डर में अपेक्षित विशेष UnxUtils अपेक्षित रूप से कार्य करने के लिए)।

तब मैं प्रोजेक्ट फ़ोल्डर में आवश्यक CoreUtils .exe फ़ाइलों की प्रतिलिपि बनाता हूं और उन्हें .bat फ़ाइल जैसे "। \ _ Curl.exe -s google.com", आदि में संदर्भ देता हूं।

बाट 2 एक्स कार्यक्रम वह जगह है जहां जादू होता है। एक बार आपकी बैच फ़ाइल पूरी हो जाने के बाद और सफलतापूर्वक परीक्षण किया गया है, तो Bat2Exe.exe लॉन्च करें, और प्रोजेक्ट फ़ोल्डर में पथ निर्दिष्ट करें। उसके बाद Bat2Exe उस विशिष्ट फ़ोल्डर में सभी फ़ाइलों से युक्त एक विंडोज बाइनरी बनाएगा, और पहले .bat का उपयोग करेगा जो मुख्य निष्पादन योग्य के रूप में उपयोग करने के लिए आता है। आप अंतिम .exe फ़ाइल के लिए आइकन के रूप में उपयोग करने के लिए एक .ico फ़ाइल भी शामिल कर सकते हैं।

मैंने इनमें से कुछ प्रकार के कार्यक्रमों की कोशिश की है, और उत्पन्न बायनेरिज़ में से कई को मैलवेयर के रूप में चिह्नित किया जाता है, लेकिन बाट 2 एक्स संस्करण जिसे मैंने संदर्भित किया है वह पूरी तरह से काम करता है और उत्पन्न .exe फाइलें पूरी तरह से साफ होती हैं।

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

मुझे लगता है कि यह काफी लंबा हो रहा है, लेकिन अगर मैं थोड़ा सा खोद सकता हूं, तो मैंने एक बैच स्क्रिप्ट भी लिखी है जिसे मैं पोर्टाबाशी कहता हूं कि मेरे सहकर्मी एक नेटवर्क शेयर से लॉन्च कर सकते हैं जिसमें एक पोर्टेबल सिग्विन इंस्टॉलेशन है। यह तब% PATH% चर को सामान्य * NIX प्रारूप (/ usr / bin: / usr / sbin: / bin: / sbin), आदि पर सेट करता है और या तो बैश शेल में लॉन्च कर सकता है या अधिक शक्तिशाली और लॉन्च कर सकता है सुंदर मिन्टी टर्मिनल एमुलेटर।

यह पूरा करने के लिए हमेशा कई तरीके होते हैं कि आप क्या करने की कोशिश कर रहे हैं; यह सिर्फ नौकरी के लिए सही उपकरणों के संयोजन की बात है, और कई बार यह व्यक्तिगत प्राथमिकता के लिए उबलता है।


1

इसे करने के लिए एक और सैद्धांतिक संभावना है: विंडोज के पेशेवर संस्करणों में अंतर्निहित POSIX समर्थन है, इसलिए विंडोज देशी के लिए बैश संकलित किया जा सकता था।

अफ़सोस, लेकिन मैं अभी भी एक संकलित खुद नहीं मिला है ...


3
विंडोज पर POSIX sybsystem को छोड़ दिया गया है [1]। "लिनक्स के लिए विंडोज सबसिस्टम" द्वारा प्रतिस्थापित किया जा रहा है, जो अनमॉडिफाइड उबंटू-बैश को चलाने के लिए "ड्राब्रिज" हल्के वर्चुअलाइजेशन सिस्टम पर आधारित है। लेकिन इस प्रणाली के अंदर एक बार कुछ बारीकियों, उदाहरण के लिए, आप Windows निष्पादक नहीं कह सकते हैं! [१] blogs.msdn.microsoft.com/wsl/2016/04/22/…
akostis

@ankostis, वास्तव में, CU के साथ आप कर सकते हैं ...
पॉल0515
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.