Como posso executar um script de shell no Windows? [duplicado]

23

Eu sou um usuário de Mac e novo no Windows. Como posso executar um script de shell no Windows?

Geralmente, eu salvava o arquivo de texto com a extensão .she o executava via Terminal. Mas como eu poderia fazer isso no Windows?

Exterminador do Futuro
fonte
1
Arquivos em lote. pt.wikipedia.org/wiki/Batch_file
Kenaniah
2
Você pode fornecer um exemplo de script que espera executar no Windows?
1
Você deseja executar um .shscript shell pré-existente ? Ou apenas deseja saber como criar scripts para o Windows?
Keltari

Respostas:

30

Scripts com .shsufixo geralmente são scripts de shell Bourne (ou bash, ou ksh ou zsh - todos os shells derivados do shell Bourne). (Observe que em sistemas tipo Unix, incluindo MacOS, o .shsufixo não é necessário; o sistema operacional examina a #!/bin/shlinha na parte superior do script para determinar como executá-lo.)

O Windows não fornece um shell semelhante ao Bourne.

Você pode instalar o Cygwin , que fornece um ambiente semelhante ao Unix no Windows - mas não possui um ambiente particularmente "nativo". (Comentário editorial: Cygwin é ótimo para pessoas como eu, que precisam usar o Windows, mas preferem realmente usar o Unix.)

Existem outros subsistemas do tipo Unix que são executados no Windows, incluindo o MinGW e o pacote do Windows Services for UNIX fornecido pela Microsoft.

Ou, em vez de tentar escrever e executar scripts shell do tipo Unix, você pode gravar arquivos em lote do Windows. Estes geralmente têm um .batou .cmdsufixo. Eles usam os mesmos comandos e sintaxe que o prompt de comando interativo do Windows.

Há também o relativamente novo Windows PowerShell ; Eu não estou familiarizado com isso, mas ouvi coisas boas sobre isso.

Keith Thompson
fonte
3
Apoiarei a sugestão do powershell como um usuário do powershell que escreveu vários scripts para fazer tudo, desde reiniciar um computador remoto ou desligar serviços em um computador remoto, puxar uma lista de nomes de computadores do diretório ativo, alfabetizá-los e testá-los cada um. determinados serviços e fazendo grandes movimentações complicadas de arquivos. Ele pode literalmente fazer tudo no Windows.
precisa saber é o seguinte
1
É importante notar que, enquanto cygwin pode permitir que o script seja executado, ele pode não funcionar corretamente se ele faz algumas suposições sobre o sistema subjacente (isto é, binários disponíveis, sistema de arquivos de layout, etc.)
Daenyth
7

Você pode usar o Cygwin . Ele fornece ambiente semelhante ao Linux no Windows.

ChandanK
fonte
2

No Win, as extensões comuns são .batou .cmd. Uma boa fonte para os comandos usados ​​no shell do Windows é o ss64 - para CMD e PowerShell.

Cygwin não é um "must". Está apenas dando a você o estilo Linux - use o BASH no Win.

Bakudan
fonte
2

E o UWIN ??

O UWIN é um pacote de software de computador criado por David Korn que permite que os programas escritos para o sistema operacional Unix sejam construídos e executados no Microsoft Windows com poucas alterações, se houver alguma. Parte do desenvolvimento de software foi subcontratada para Wipro, na Índia.

Verifique este UWIN - Unix para Windows

Recursos importantes do UWIN

  1. Acesso a quase todas as ferramentas de linha de comando do Unix no Windows. Para ser exato.
  2. Vem com o compilador Unix original 'cc', bem como uma infinidade de ferramentas como 'make' e as bibliotecas necessárias que permitem que aplicativos Unix sejam construídos e executados em máquinas Windows com muito pouca ou nenhuma alteração no código-fonte.
  3. Opção para usar outros compiladores, como Visual C ++ ou Mingw, para compilar programas. Pacote Perl completo.
  4. Bibliotecas do Windows X para aqueles que desejam desenvolver aplicativos X no Windows. Apesar de executar esses aplicativos no Windows, você precisa de um servidor X que não esteja incluído no UWIN.
  5. O UWIN vem com um applet do painel de controle (acessado em 'Iniciar-> Configurações-> Painel de controle-> UWIN'), que pode ser usado para configurar alguns dos parâmetros do sistema UWIN.

Usos de UWIN

  • Execute aplicativos Unix nativamente no Windows em velocidade máxima.
  • Use todo o poder das ferramentas de linha de comando Unix no Windows.
  • O shell korn fornecido com o UWIN faz com que o usuário do Unix se sinta em casa em um ambiente Windows.
  • Desenvolva e execute aplicativos UNIX no Windows.
  • Desenvolva aplicativos X na plataforma Windows.

Desvantagens do UWIN

  • O UWIN não é fornecido com um servidor X, portanto, o usuário não poderá executar aplicativos X no Windows. Embora existam servidores X comerciais de terceiros disponíveis, que podem preencher essa lacuna.
  • O UWIN não é liberado pela GPL, mas é gratuito para download e uso para fins educacionais e não comerciais

Esse software foi usado para nos ensinar o Linux Command quando eu estava na faculdade.


Ref: WikiPedia

Cygwin é um ambiente semelhante ao Unix e uma interface de linha de comando para o Microsoft Windows.

O bom é que o Cygwin fornece integração nativa de aplicativos, dados e outros recursos do sistema baseados no Windows com aplicativos, ferramentas de software e dados do ambiente semelhante ao Unix.

Interix
Interix é um componente do Services for Unix (SFU) versão 3.0 e 3.5 ( este último é distribuído livremente ).

As versões mais recentes do Interix, 5.2 e 6.0, são componentes das edições Windows Server 2003 R2, Windows Vista Enterprise e Ultimate e Windows Server 2008 com o nome SUA (Subsistema para aplicativos baseados em Unix), versão 6.1 incluída no Windows 7 ( Enterprise e Ultimate) e Windows Server 2008 R2 (todas as edições)

Niranjan Singh
fonte
2

Há outra maneira de fazer isso com a atualização de aniversário do Windows 10 . Agora existe um shell Bash (Ubuntu) disponível no Windows.

Para usá-lo, você precisa instalar o recurso, pois ele não está ativado por padrão.

  1. Vá para Control Panel-> Programs-> Turn Windows Features On and Off.

  2. Marque a caixa de seleção para Windows Subsystem for Linux (Beta). Isso instalará o recurso e solicitará uma reinicialização.

Em seguida, você pode abrir um prompt de comando via run -> cmdtype bashou run -> bash.exe.

Isso fornecerá um shell bash sem máquina virtual ou Cygwin ou caixa virtual.

Matt
fonte
1

Embora as respostas existentes aqui estavam corretos no momento, o Windows 10 não agora opcionalmente incluir uma versão modificada do Ubuntu executando um shell bash completa .

Uma vez instalado, você pode abrir um prompt do bash (como faria com um terminal no OS X / macOS) e executar o script como de costume, ou seja:

chmod +x myscript.sh
./myscript.sh

Se você deseja executar um script diretamente do Windows, crie um atalho no mesmo diretório e defina o 'Target' para algo como:

C:\Windows\System32\bash.exe -c "./myscript.sh"

Se o caminho do seu script for relativo ao local do atalho (como no exemplo acima), verifique se o campo 'Iniciar em' também está em branco.

Molomby
fonte
0

Você precisará do CygWin e acredito que poderá executar:

sh yourscript.sh
dpl47
fonte
0

A resposta certa foi dada em um comentário do Kenaniah, você precisa usar arquivos em lote . Você precisa nomear seu arquivo de código do shell como * .bat, para executá-lo clicando nele ou simplesmente digitando seu nome no terminal. Observe que o terminal do Windows não funciona exatamente como o terminal unix. Você encontrará muita ajuda e tutoriais para os comandos e sintaxe em toda a web. Também existe a possibilidade de usar o Windows PowerShell , que parece mais com o Unix.

Michael K
fonte