Como run.sh na linha de comandos do Windows?

Como posso correr. sh na linha de comandos do Windows 7? Eu sempre recebo este erro quando tento executar esta linha nele,

app/build/build.sh

erro,

'app' is not recognized...

ou

bash app/build/build.sh

erro,

'bash' is not recognized...
Alguma ideia do que perdi?

Aqui a captura de ecrã, enter image description here

Author: laukok, 2014-10-23

7 answers

A mensagem de erro indica que não instalou bash, ou que não está no seu PATH.

O maior sucesso do Google é http://win-bash.sourceforge.net/ mas também precisa de compreender que a maioria dos programas Bash esperam um ambiente semelhante ao Unix; por isso, só a instalação do Bash é provavelmente improvável para lhe permitir executar um programa que tenha encontrado na net, a menos que tenha sido desenhado especificamente para este cenário de utilização em particular. A solução habitual para isso é: https://www.cygwin.com/ mas existem muitas alternativas possíveis, dependendo do que exatamente você quer realizar.

Se o Windows não é central para o seu cenário de Utilização, a instalação de um sistema operacional livre (talvez virtualizado) pode ser a forma mais simples de seguir em frente.

A segunda mensagem de erro é devido ao facto de O Windows aceitar nominalmente a barra avançada como um separador de directórios, mas neste contexto, está a ser interpretada como um separador de comutadores. Por outras palavras, janelas analisa a sua linha de comandos como app /build /build.sh (ou, para parafrasear com Convenções de opções Unix, app --build --build.sh). Você poderia tentar app\build\build.sh mas é improvável que funcione, por causa das circunstâncias descritas acima.

 31
Author: tripleee, 2014-10-23 07:33:38

Install GIT . Durante a instalação do GIT, adicione a Bash do GIT ao menu de contexto do windows, seleccionando a sua opção. Após a instalação, carregue com o botão direito na sua pasta seleccione GIT Bash Here (ver pic em anexo) e use o seu comando sh como por exemplo:

sh test.sh

enter image description here

 72
Author: Faisal Mq, 2016-05-27 08:15:57

A forma mais comum de executar um .sh o ficheiro está a usar o comando sh :

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

Outra boa opção está a instalar CygWin

Em Windows o {[4] } está localizado em:

C:\cygwin64\home\[user]

Por exemplo, executo o meu ficheiro my-script-test.sh Usando o bash comando como:

jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh 
 37
Author: Jorgesys, 2015-06-16 20:59:46

Também pode utilizar cmder

O Cmder é um pacote de software criado por pura frustração devido à ausência de emuladores de consola no Windows. Ele é baseado em software incrível, e apimentado com o esquema de cores Monokai e um layout personalizado prompt, olhando sexy desde o início

Screenshot

Cmder.net

 5
Author: vipmaa, 2016-10-18 17:05:03

Na actualização do aniversário do Windows 10, é ainda mais fácil executar comandos shell em/com o bash no ubuntu no windows

Eu estava tentando configurar minha região para o meu x-wrt r7000 router netgear, eu encontrei a seguinte trabalhou para mim, usando o bash no ubuntu no windows, você tem que habilitar o subsistema encontrado em recursos do windows, e dev modo

ssh [email protected] < /mnt/c/ccode-eu.sh
 3
Author: SignedAdam, 2016-08-25 21:14:08

Novo recurso no Windows-run bash no ubuntu no windows-disponível no Windows 10 "Insiders" constrói após a Conferência de compilação:

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

 2
Author: claudiu.nicola, 2016-03-31 08:23:04

Pessoalmente, usei este ficheiro em lote, mas requer a instalação do CygWin (64-bit Como mostrado). Basta associar o tipo de ficheiro. SH com este ficheiro de código (Executsh.BAT no meu caso) e você pode clicar duas vezes sobre o. SH E ele corre.

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

Baseado em este trabalho original.

 1
Author: Anonymouse, 2017-02-21 12:23:31