विंडोज कमांड प्रॉम्प्ट पर .sh कैसे चलाएं?


132

मैं विंडोज 7 कमांड प्रॉम्प्ट पर .sh कैसे चला सकता हूं? जब मैं इस लाइन को चलाने की कोशिश करता हूं तो मुझे हमेशा यह त्रुटि मिलती है,

app/build/build.sh

त्रुटि,

'app' is not recognized...

या,

bash app/build/build.sh

त्रुटि,

'bash' is not recognized...

किसी भी विचार मैं क्या याद किया है?

यहाँ स्क्रीन हड़पने, यहाँ छवि विवरण दर्ज करें


6
आपको साइबरविन (संभवतः) की आवश्यकता है। आप विंडोज पर शेल (.sh) स्क्रिप्ट चलाने की कोशिश कर रहे हैं और यही एकमात्र तरीका है कि मैंने .shविंडोज पर अपनी फाइलें चलाई हैं ।
ha9u63ar

जवाबों:


54

त्रुटि संदेश इंगित करता है कि आपने स्थापित नहीं किया है bash, या यह आपके में नहीं है PATH

Google की शीर्ष हिट http://win-bash.sourceforge.net/ है, लेकिन आपको यह भी समझना होगा कि अधिकांश बैश स्क्रिप्ट यूनिक्स जैसे माहौल की उम्मीद करते हैं; इसलिए बस बैश स्थापित करने से आपको नेट पर मिलने वाली स्क्रिप्ट को चलाने की अनुमति देने की संभावना नहीं है, जब तक कि यह विशेष रूप से इस विशेष परिदृश्य के लिए डिज़ाइन नहीं किया गया हो। इसका सामान्य समाधान https://www.cygwin.com/ है, लेकिन कई संभावित विकल्प हैं, जो वास्तव में यह है कि आप इसे पूरा करना चाहते हैं पर निर्भर करता है।

यदि विंडोज़ आपके उपयोग परिदृश्य के लिए केंद्रीय नहीं है, तो मुफ्त ओएस (शायद वर्चुअलाइज्ड) स्थापित करना आगे का सबसे सरल तरीका हो सकता है।

दूसरी त्रुटि संदेश इस तथ्य के कारण है कि विंडोज नाममात्र एक निर्देशिका विभाजक के रूप में आगे स्लैश को स्वीकार करता है, लेकिन इस संदर्भ में, इसे स्विच विभाजक के रूप में व्याख्या किया जा रहा है। दूसरे शब्दों में, विंडोज आपकी कमांड लाइन को app /build /build.sh(या, यूनिक्स विकल्प सम्मेलनों के साथ विरोधाभास करने के लिए app --build --build.sh) के रूप में पार्स करता है । आप कोशिश कर सकते हैं, app\build\build.shलेकिन ऊपर उल्लिखित परिस्थितियों के कारण, यह काम करने की संभावना नहीं है।


1
बेशक, विंडोज 10 के साथ, आप डब्ल्यूएसएल को सक्षम कर सकते हैं और आपके विंडोज के अंदर लगभग एक वास्तविक कंप्यूटर है।
ट्रिपलए

147

जीआईटी स्थापित करें । जीआईटी की स्थापना के दौरान, इसके विकल्प का चयन करके विंडोज़ संदर्भ मेनू में जीआईटी बैश को जोड़ें। स्थापना के बाद अपने फ़ोल्डर में राइट क्लिक करें GIT Bash Here(संलग्न चित्र देखें) और उदाहरण के लिए अपने sh कमांड का उपयोग करें:

sh test.sh

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


1
यह मेरे लिए काम नहीं करता है। एक कमांड प्रॉम्प्ट विंडो खुलती है फिर जल्दी से बंद हो जाती है।
desbest

27
यदि आपके पास GIT स्थापित है, तो आप पथ सिस्टम वैरिएबल को पथ में जोड़ सकते हैं sh.exe। मेरे मामले में यह था: c:\Program Files\Git\bin। तब चलाने sh .\script.shPowerShell से
elshev

1
यह मेरे लिए 2020 में विंडोज 10 में एक आकर्षण की तरह काम करता है! हालांकि कॉपी / पेस्ट कमांड मेरे लिए काम नहीं कर रहा है क्योंकि यह निर्धारित है ctrl-insऔरshift-ins
G पर Nam G VU

51

.Sh फ़ाइल को चलाने का सबसे आम तरीका sh कमांड का उपयोग करना है :

C:\>sh my-script-test.sh 

अन्य अच्छा विकल्प CygWin स्थापित कर रहा है

में में स्थित है:Windowshome

C:\cygwin64\home\[user]

उदाहरण के लिए मैं बैश कमांड my-script-test.shका उपयोग करके अपनी फ़ाइल निष्पादित करता हूं :

jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh 

43
जब तक आप इसे प्राप्त करने के लिए विशेष उपाय नहीं करते, तब तक आप shविंडोज पर कमांड नहीं करेंगे ।
user2357112

1
ठीक -1, क्या आपका मतलब है कि मुझे कमांड लाइन से श तक पहुंचने के लिए एक ट्यूटोरियल जोड़ना है ???
जोर्जेस

41
आपका उत्तर इस तरह प्रस्तुत किया जाता है जैसे कि आप उम्मीद करते हैं कि आप shएक मनमाना विंडोज कमांड प्रॉम्प्ट पर टाइप कर पाएंगे और यह काम कर पाएगा ।
user2357112

ms कमांड 2 sh कमांड पाने के लिए एक अच्छी जगह है। यदि आप इसे cmd के साथ उपयोग करना चाहते हैं तो github.com/userzimmermann/MSYS2-cmd देखें
Aralox

3
बैश, और shकमांड, Git4Windows के साथ स्थापित किया गया है यदि आप 'इंस्टॉल बैश' विकल्प का चयन करते हैं।
जोएल एलिस

13

आप भी सीडर का उपयोग कर सकते हैं

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

स्क्रीनशॉट

cmder.net


1
हालांकि यह एक वैकल्पिक ऐड-ऑन पैक के साथ आता है जिसमें सामान्य यूनिक्स शेल कमांड शामिल हैं, बेस पैकेज केवल एक प्रतिस्थापन के लिए लगता है cmd
त्रिवेणी

5

विंडोज 10 एनिवर्सरी अपडेट पर, विंडोज़ पर ubuntu पर बैश / के साथ शेल कमांड चलाना और भी आसान है

मैं अपने एक्स-रे r7000 नेटगियर राउटर के लिए अपना क्षेत्र निर्धारित करने की कोशिश कर रहा था, मैंने पाया कि मेरे लिए निम्नलिखित काम किया गया है, खिड़कियों पर उबंटू पर बैश का उपयोग करते हुए, आपको विंडोज़ सुविधाओं में पाए जाने वाले सबसिस्टम को सक्षम करना होगा, और देव मोड पर

ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh

दौड़ सकते हैं। लेकिन यह पूरी तरह से अलग माहौल है।
TamusJRoyce

4

विंडोज में नई सुविधा - विंडोज़ पर ubuntu पर रन बैश - विंडोज 10 में उपलब्ध "अंदरूनी सूत्र" बिल्ड कॉन्फ्रेंस के बाद बनाता है:

https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/


कूल, लेकिन आप एक shफाइल कैसे चलाते हैं bash? अगर मैं इसे करने की कोशिश करता हूं, तो खिड़की सिर्फ चमकती है और गायब हो जाती है। अगर मैं फ़ाइल को एक खुली हुई बैश विंडो में खींचता / छोड़ता हूँ, तो वह कहती है कि रास्ता नहीं मिला (क्योंकि यह एक अलग सम्मेलन का उपयोग करता है)।
m93a

क्या आजकल विंडोज पर .sh फाइल चलाना संभव है? मैं इसे अब कोशिश कर सकते हैं नहीं है, लेकिन मैं में दिलचस्पी रहा हूँ।
JesusMurF

1
मैंने इसे स्वयं आज़माया नहीं है, लेकिन विंडोज़ पर sh चलाने के तरीके पर Microsoft द्वारा एक गाइड है: docs.microsoft.com/en-us/windows/wsl/install-win10
claudiu.nicola

@ m93a उबंटू टर्मिनल विंडो में, bash path/to/scriptस्क्रिप्ट चलाता है। shउबंटू में भी निश्चित रूप से है । यदि स्क्रिप्ट में एक उचित शेबबैंग और अनुमतियाँ हैं, तो बस path/to/scriptउसे शेल्टर में निर्दिष्ट rnterpreter के साथ चलाएंगे।
ट्रिपल

4

व्यक्तिगत रूप से मैंने इस बैच फ़ाइल का उपयोग किया है, लेकिन इसे CygWin स्थापित करने की आवश्यकता है (जैसा कि दिखाया गया है 64-बिट)। बस फ़ाइल प्रकार को .SH को इस बैचफाइल के साथ मिलाएं (ExecSH.BAT in my case) और आप .SH पर डबल क्लिक कर सकते हैं और यह चलता है।

@echo off
setlocal

if not exist "%~dpn1.sh" echo Script "%~dpn1.sh" not found & goto :eof

set _CYGBIN=C:\cygwin64\bin
if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & goto :eof

:: Resolve ___.sh to /cygdrive based *nix path and store in %_CYGSCRIPT%
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn1.sh"') do set _CYGSCRIPT=%%A
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%CD%"') do set _CYGPATH=%%A

:: Throw away temporary env vars and invoke script, passing any args that were passed to us
endlocal & %_CYGBIN%\mintty.exe -e /bin/bash -l -c 'cd %_CYGPATH%;  %_CYGSCRIPT% %*'

इस मूल कार्य पर आधारित


0

मैं विंडोज 10 बैश शेल उर्फ ​​लिनक्स सबसिस्टम उर्फ ​​उबंटू का उपयोग विंडोज 10 में यहां निर्देशित के रूप में करता हूं

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