Comprei e uso o Windows 7 Ultimate e gosto de usá-lo para desenvolver aplicativos. Uma das desvantagens (como em todo sistema operacional) é que não consigo executar scripts Bash. Existe uma maneira de executar scripts Bash no Windows instalando algum software? Está tudo bem se não funcionar 100%, mas desde que a funcionalidade mais comum esteja disponível, deve ser ótimo.
100
Respostas:
Instale o Cygwin , que inclui o Bash entre muitos outros utilitários GNU e Unix (sem os quais é improvável que o bash seja muito útil de qualquer maneira).
Outra opção é o MSYS do MinGW, que inclui o bash e um conjunto menor de utilitários mais importantes, como o awk. Pessoalmente, eu teria preferido o Cygwin porque inclui ferramentas de trabalho pesadas como Perl e Python, as quais acho que não posso viver sem, enquanto o MSYS os economiza e assume que você mesmo irá instalá-los.
Atualizado : Se alguém estiver interessado nesta resposta e estiver executando o MS-Windows 10, observe que o MS-Windows 10 tem um recurso " Subsistema Windows para Linux " que - uma vez ativado - permite que você instale uma imagem do Ubuntu e do modo de usuário em seguida, execute o Bash nisso. Isso fornece 100% de compatibilidade com o Ubuntu para depuração e execução de scripts Bash, mas esta configuração é completamente independente do Windows e você não pode usar scripts Bash para interagir com recursos do Windows (como processos e APIs), exceto para acesso limitado a arquivos por meio do recurso DrvFS .
fonte
mingw32
diretório que contém basicamente MSYS. Então Git para Windows é MinGW que inclui Git (seu opcional no instalador MSYS) com um instalador "mais legal": superuser.com/a/1362301/10942A melhor opção que encontrei é o Git Windows. Basta instalá-lo, clicar com o botão direito do mouse e clicar em "Git Bash Aqui" para abrir uma janela do bash
Isso abrirá uma janela bash como esta:
e os comandos do linux funcionam ...
Tentei os comandos 'sh', 'vi', 'ssh', 'curl', etc ...
fonte
Se você está procurando por algo um pouco mais nativo, pode usar getGnuWin32 para instalar todas as ferramentas de linha de comando do Unix que foram portadas. Além disso, o winBash oferece a maior parte de um ambiente Unix funcional. Adicione o console2 para um emulador de terminal melhor e você quase não conseguirá identificá- lo no Windows!
O Cygwin é um kit de ferramentas melhor no geral, mas me deparei com problemas inesperados por causa da divisão entre ele e o Windows. Nenhuma dessas soluções é tão boa quanto um sistema Linux nativo.
Você pode querer usar o virtualbox para criar uma VM Linux com a distribuição de sua escolha. Configure-o para compartilhar uma pasta com o sistema operacional host, e você pode usar um verdadeiro ambiente de desenvolvimento Linux e compartilhar com o Windows. Apenas tome cuidado com os marcadores EOL, eles pegam você sempre.
fonte
Melhor opção? Windows 10. Suporte nativo a Bash!
fonte
cbwin
... mas isso já é muito barulho para apenas uma solução alternativa).Você sempre pode instalar o Cygwin para executar um shell Unix no Windows. Usei o Cygwin extensivamente com o Windows XP.
fonte
Depois de instalar git-Extions ( https://code.google.com/p/gitextensions/ ), você pode executar o arquivo .sh a partir do prompt de comando. (Não é necessário ./script.sh, apenas execute-o como um arquivo bat / cmd) Ou você pode executá-los em um ambiente bash "completo" usando o shell bash MinGW Git.
Não sou um grande fã do Cygwin (sim, tenho certeza de que é muito poderoso), portanto, executei scripts bash no Windows sem ter que instalá-lo perfeito para mim.
fonte
bash
em uma instância do PowerShell, falhei, instalei git-extensions e tentei novamente e funcionou para mim.Para executar nativamente, você provavelmente precisará usar o Cygwin (sem o qual não consigo viver quando uso o Windows). Então, logo de cara, +1 para Cygwin. Qualquer outra coisa seria incivilizada.
NO ENTANTO, dito isto, recentemente comecei a usar uma combinação de utilitários para facilmente PORT Bash scripts para o Windows para que meus colegas de trabalho anti-Linux possam facilmente executar tarefas complexas que são melhor administradas por utilitários GNU.
Normalmente, consigo portar um script Bash para o Batch em um tempo muito curto, abrindo o script original em um painel e gravando um arquivo Batch no outro painel. As ferramentas que utilizo são as seguintes:
Eu prefiro UnxUtils ao GnuWin32 devido ao fato de que [alguém por favor me corrija se eu estiver errado] utils GnuWin normalmente precisam ser instalados, enquanto UnxUtils são binários autônomos que funcionam fora da caixa.
No entanto, os CoreUtils não incluem alguns utilitários * NIX familiares, como cURL, que também está disponível para Windows (curl.haxx.se/download.html).
Eu crio uma pasta para os projetos, e sempre SET PATH =. no arquivo .bat para que nenhum outro comando além dos comandos básicos do shell CMD seja referenciado (bem como os UnxUtils específicos necessários na pasta do projeto para que o script em lote funcione conforme o esperado).
Em seguida, copio os arquivos CoreUtils .exe necessários para a pasta do projeto e faço referência a eles no arquivo .bat, como ". \ Curl.exe -s google.com" etc.
O programa Bat2Exe é onde a mágica acontece. Depois que seu arquivo de lote estiver completo e testado com sucesso, inicie Bat2Exe.exe e especifique o caminho para a pasta do projeto. O Bat2Exe criará um binário do Windows contendo todos os arquivos dessa pasta específica e usará o primeiro .bat que vier a ser usado como o executável principal. Você pode até incluir um arquivo .ico para usar como ícone para o arquivo .exe final que é gerado.
Eu tentei alguns desses tipos de programas, e muitos dos binários gerados são sinalizados como malware, mas a versão Bat2Exe que mencionei funciona perfeitamente e os arquivos .exe gerados são completamente limpos.
O executável resultante pode ser executado de forma interativa com um clique duplo ou executado a partir da linha de comando com parâmetros, etc., assim como um arquivo Batch normal, exceto que você será capaz de utilizar a funcionalidade de muitas das ferramentas que normalmente usa no Bash.
Sei que está ficando muito longo, mas se me permitem divagar um pouco, também escrevi um script em lote que chamo de PortaBashy, que meus colegas de trabalho podem iniciar a partir de um compartilhamento de rede que contém uma instalação Cygwin portátil. Em seguida, ele define a variável% PATH% para o formato * NIX normal (/ usr / bin: / usr / sbin: / bin: / sbin), etc. e pode iniciar no próprio shell Bash ou iniciar o mais poderoso e bonito emulador de terminal MinTTY.
Sempre há várias maneiras de realizar o que você está tentando fazer; é apenas uma questão de combinar as ferramentas certas para o trabalho e, muitas vezes, tudo se resume à preferência pessoal.
fonte
Há mais uma possibilidade teórica de fazer isso: as versões profissionais do Windows têm suporte integrado a POSIX, então o bash poderia ter sido compilado para o Windows nativamente.
Pena, mas eu ainda não encontrei um compilado ...
fonte