it-swarm.com.de

Wie kann ich .sh auf der Windows-Eingabeaufforderung ausführen?

Wie kann ich .sh auf der Windows 7-Eingabeaufforderung ausführen? Ich erhalte immer diese Fehlermeldung, wenn ich versuche, diese Zeile darin auszuführen.

app/build/build.sh

error,

'app' is not recognized...

oder,

bash app/build/build.sh

error,

'bash' is not recognized...

Irgendwelche Ideen, was ich vermisst habe?

Hier das Screen Grab, enter image description here

105
laukok

Die Fehlermeldung zeigt an, dass Sie bash nicht installiert haben oder dass es sich nicht in Ihrem PATH befindet.

Der beste Google-Hit ist http://win-bash.sourceforge.net/ , aber Sie müssen auch verstehen, dass die meisten Bash-Skripte eine Unix-ähnliche Umgebung erwarten. Wenn Sie also nur Bash installieren, können Sie wahrscheinlich kaum ein Skript ausführen, das Sie im Internet gefunden haben, es sei denn, es wurde speziell für dieses bestimmte Verwendungsszenario entwickelt. Die übliche Lösung dafür ist https://www.cygwin.com/ , aber es gibt viele mögliche Alternativen, je nachdem, was genau Sie erreichen möchten.

Wenn Windows für Ihr Nutzungsszenario nicht von zentraler Bedeutung ist, ist die Installation eines kostenlosen Betriebssystems (möglicherweise virtualisiert) möglicherweise der einfachste Weg.

Die zweite Fehlermeldung ist darauf zurückzuführen, dass Windows normalerweise Schrägstriche als Verzeichnistrennzeichen akzeptiert. In diesem Kontext wird sie jedoch als Switch-Trennzeichen interpretiert. Mit anderen Worten, Windows analysiert Ihre Befehlszeile als app /build /build.sh (oder, um mit Unix-Optionskonventionen umzuschreiben, app --build --build.sh). Sie könnten app\build\build.sh versuchen, aber es ist unwahrscheinlich, dass es funktioniert, da die oben genannten Umstände vorliegen.

49
tripleee

Installieren Sie GIT . Fügen Sie während der Installation von GIT GIT Bash zum Windows-Kontextmenü hinzu, indem Sie die entsprechende Option auswählen. Nach der Installation klicken Sie mit der rechten Maustaste in Ihren Ordner und wählen Sie GIT Bash Here (siehe beigefügtes Bild) und verwenden Sie Ihren Befehl sh wie zum Beispiel:

sh test.sh

enter image description here

106
Faisal Mq

Die am häufigsten verwendete Methode zum Ausführen einer . Sh -Datei ist die Verwendung der sh Befehl:

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

eine andere gute Option ist die Installation von CygWin

in Windows befindet sich home in:

C:\cygwin64\home\[user]

zum Beispiel führe ich meine my-script-test.sh -Datei mit dem Befehl bash wie folgt aus:

[email protected] ~$ bash /home/[user]/my-script-test.sh 
47
Jorgesys

sie können auch cmder verwenden

Cmder ist ein Softwarepaket, das aus purer Frustration über das Fehlen von Nice-Konsolenemulatoren unter Windows entwickelt wurde. Es basiert auf einer erstaunlichen Software und wurde mit dem Monokai-Farbschema und einem benutzerdefinierten Prompt-Layout aufgewertet, das von Anfang an sexy aussieht

Screenshot

cmder.net

9
vipmaa

Unter Windows 10 Anniversary Update ist es noch einfacher, Shell-Befehle in/with bash unter Ubuntu unter Windows auszuführen

Ich habe versucht, meine Region für meinen x-wrt r7000 Netgear-Router festzulegen. Ich fand, dass das Folgende für mich funktioniert. Mit bash on ubuntu unter Windows müssen Sie das in Windows-Funktionen gefundene Subsystem aktivieren und den Dev-Modus einschalten

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

Persönlich habe ich diese Batch-Datei verwendet, aber dafür muss CygWin installiert sein (64-Bit wie gezeigt). Verknüpfen Sie einfach den Dateityp .SH mit dieser Batchdatei (ExecSH.BAT in meinem Fall) und Sie können auf die .SH doppelklicken und sie wird ausgeführt.

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

Basierend auf this Originalarbeit.

3
Anonymouse

Neues Feature in Windows - bash auf Ubuntu unter Windows ausführen - verfügbar in Windows 10 "Insiders" Builds nach der Build-Konferenz:

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

3
claudiu.nicola