Hoe .sh uitvoeren op de Windows-opdrachtprompt?

Hoe kan ik .sh uitvoeren op de opdrachtprompt van Windows 7? Ik krijg altijd deze foutmelding als ik deze regel erin probeer uit te voeren,

app/build/build.sh

fout,

'app' is not recognized...

of,

bash app/build/build.sh

fout,

'bash' is not recognized...

Enig idee wat ik heb gemist?

Hier de schermgreep,


Antwoord 1, autoriteit 100%

De foutmelding geeft aan dat je bashniet hebt geïnstalleerd, of dat het niet in je PATHstaat.

De grootste hit van Google is http://win-bash.sourceforge.net/maar je moet dat ook begrijpen de meeste Bash-scripts verwachten een Unix-achtige omgeving; dus het is waarschijnlijk onwaarschijnlijk dat alleen het installeren van Bash je in staat stelt een script uit te voeren dat je op het net hebt gevonden, tenzij het specifiek is ontworpen voor dit specifieke gebruiksscenario. De gebruikelijke oplossing hiervoor is https://www.cygwin.com/maar er zijn veel mogelijke alternatieven, afhankelijk van wat het precies is die u wilt bereiken.

Als Windows niet centraal staat in uw gebruiksscenario, is het installeren van een gratis besturingssysteem (misschien gevirtualiseerd) wellicht de eenvoudigste oplossing.

De tweede foutmelding is te wijten aan het feit dat Windows nominaal voorwaartse slash accepteert als een mapscheidingsteken, maar in deze context wordt het geïnterpreteerd als een schakelscheidingsteken. Met andere woorden, Windows parseert uw opdrachtregel als app /build /build.sh(of, om te parafraseren met Unix-optieconventies, app --build --build.sh). Je zou app\build\build.shkunnen proberen, maar het is onwaarschijnlijk dat het werkt vanwege de hierboven beschreven omstandigheden.


Antwoord 2, autoriteit 92%

Installeer GIT. Voeg tijdens de installatie van GIT GIT Bash toe aan het contextmenu van Windows door de optie te selecteren. Klik na de installatie met de rechtermuisknop in uw map en selecteer GIT Bash Here(zie bijgevoegde foto) en gebruik uw sh-commando zoals bijvoorbeeld:

sh test.sh


Antwoord 3, autoriteit 89%

De meest gebruikelijke manier om een .sh-bestand uit te voeren is met het commando sh:

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

een andere goede optie is het installeren van CygWin

in Windowsbevindt de homezich in:

C:\cygwin64\home\[user]

ik voer bijvoorbeeld mijn my-script-test.shbestand uit met de bashcommando als:

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

Antwoord 4, autoriteit 23%

u kunt ook cmder gebruiken

Cmder is een softwarepakket gemaakt uit pure frustratie over de afwezigheid van mooie console-emulators op Windows. Het is gebaseerd op geweldige software en gekruid met het Monokai-kleurenschema en een aangepaste promptlay-out, die er vanaf het begin sexy uitziet

cmder.net


Antwoord 5, autoriteit 10%

In de Windows 10-jubileumupdate is het nog eenvoudiger om shell-opdrachten in/met bash op ubuntu in Windows uit te voeren

Ik probeerde mijn regio in te stellen voor mijn x-wrt r7000 netgear-router, ik ontdekte dat het volgende voor mij werkte, met bash op ubuntu op Windows, je moet het subsysteem in Windows-functies inschakelen en dev-modus aan

ssh [email protected] < /mnt/c/ccode-eu.sh

Antwoord 6, autoriteit 6%

Nieuwe functie in Windows – voer bash uit op ubuntu op Windows – beschikbaar in Windows 10 “Insiders” builds na de Build-conferentie:

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


Antwoord 7, autoriteit 6%

Persoonlijk heb ik dit batchbestand gebruikt, maar het vereist CygWin-installatie (64-bits zoals weergegeven).
Koppel gewoon het bestandstype .SH aan dit batchbestand (ExecSH.BAT in mijn geval) en u kunt dubbelklikken op de .SH en het wordt uitgevoerd.

@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% %*'

Gebaseerd op ditorigineel werk.


Antwoord 8, autoriteit 3%

Installeer de GitBash-tool in het Windows-besturingssysteem. Stel het onderstaande Pathin in de omgevingsvariabelen van Systeem voor de Git-installatie.

<Programmeer bestanden in C:\>\Git\bin

<Programmabestanden in C:\>\Git\usr\bin

Typ ‘sh‘ in het venster cmdom om te leiden naar de Bourne-shell en voer uw opdrachten uit in terminal.


Antwoord 9, autoriteit 2%

Heb je geprobeerd cdnaar de hoofdmap te gaan waar je .shzich bevindt om het vanaf daar uit te voeren, in plaats van een pad naar het bestand op te schrijven als die je in je vraag hebt laten zien?

Vind ik leuk:

$ cd app/build
$ build.sh

Antwoord 10

Ik gebruik Windows 10 Bash-shell, ook bekend als Linux-subsysteem, ook bekend als Ubuntu, in Windows 10 als begeleide hier


Antwoord 11

installeer gewoon git en door “bash <name.sh>” voer je .sh-bestand uit.

Other episodes