Como criar e executar scripts de shell Bash no Windows 10

Com a chegada do shell Bash do Windows 10 , agora você pode criar e executar scripts de shell Bash no Windows 10. Você também pode incorporar comandos Bash em um arquivo de lote do Windows ou script PowerShell.

Mesmo que você saiba o que está fazendo, isso não é necessariamente tão simples quanto parece. O Windows e o UNIX usam caracteres de fim de linha diferentes e o sistema de arquivos do Windows pode ser acessado em um local diferente no ambiente Bash.

Como escrever um script Bash no Windows 10

Ao escrever scripts de shell no Windows, tenha em mente que os sistemas Windows e UNIX como o Linux usam caracteres de “fim de linha” diferentes em arquivos de texto em scripts de shell.

Em outras palavras, isso significa que você não pode simplesmente escrever um script de shell no Bloco de notas. Salve o arquivo no Bloco de notas e ele não será interpretado corretamente pelo Bash. No entanto, você pode usar editores de texto mais avançados – por exemplo, o Notepad ++ permite que você atribua caracteres de final de linha UNIX a um arquivo clicando em Editar> Conversão EOL> Formato UNIX / OSX.

No entanto, é melhor você apenas escrever o script de shell no próprio ambiente Bash. O ambiente Bash baseado no Ubuntu vem com os editores de texto vi e nano . O editor vi é mais poderoso, mas se você nunca o usou antes, pode começar com o nano. É mais fácil de usar se você for novo.

Recomendado:  De onde o Google Maps obtém seus dados de tráfego?

Por exemplo, para criar um script bash no nano, você executaria o seguinte comando no bash:

nano ~ / myscript.sh

Isso abriria o editor de texto Nano apontado para um arquivo chamado “myscript.sh” no diretório inicial da sua conta de usuário. (O caractere “~” representa seu diretório pessoal, então o caminho completo é /home/username/myscript.sh.)

Inicie seu script de shell com a linha:

#! / bin / bash

Digite os comandos que deseja executar, cada um em sua própria linha. O script executará cada comando por vez. Adicione um caractere “#” antes de uma linha para tratá-la como um “comentário”, algo que ajuda você e outras pessoas a entender o script, mas que não é executado como um comando. Para truques mais avançados, consulte um guia mais detalhado para scripts Bash no Linux . As mesmas técnicas funcionarão no Bash no Ubuntu no Windows.

Observe que não há como executar programas do Windows a partir do ambiente Bash. Você está restrito a comandos e utilitários de terminal Linux, da mesma forma que estaria em um sistema Linux típico.

Por exemplo, vamos apenas usar um script “hello world” básico como exemplo aqui:

#! / bin / bash
# definir a variável STRING
STRING = "Olá, mundo!"
# imprime o conteúdo da variável na tela
echo $ STRING

Se você estiver usando o editor de texto Nano, poderá salvar o arquivo pressionando Ctrl + O e depois Enter. Feche o editor pressionando Ctrl + X.

Torne o script executável e execute-o

Você provavelmente vai querer tornar o script executável para que possa executá-lo com mais facilidade. No Linux, isso significa que você precisa dar ao arquivo de script a permissão executável. Para fazer isso, execute o seguinte comando no terminal, apontando-o para o seu script:

chmod + x ~ / myscript.sh

Para executar o script, agora você pode apenas executá-lo no terminal digitando seu caminho. Sempre que você quiser iniciar o script no futuro, basta abrir o shell Bash e digitar o caminho para o script.

~ / myscript.sh

(Se o script estiver no diretório atual, você pode executá-lo com ./myscript.sh)

Recomendado:  Como instalar e configurar o sistema de segurança Nest Secure

Como trabalhar com arquivos do Windows em um script Bash

Para acessar os arquivos do Windows no script, você precisará especificar o caminho em / mnt / c, não o caminho do Windows. Por exemplo, se você deseja especificar o arquivo C: \ Usuários \ Bob \ Downloads \ test.txt, precisa especificar o caminho /mnt/c/Users/Bob/Downloads/test.txt. Consulte nosso guia para locais de arquivos no shell Bash do Windows 10  para obter mais detalhes.

Como incorporar comandos Bash em um script de lote ou PowerShell

Por último, se você tiver um arquivo em lote ou script do PowerShell existente ao qual deseja incorporar comandos, poderá executar comandos Bash diretamente usando o bash -ccomando.

Por exemplo, para executar um comando do Linux em um Prompt de Comando ou janela do PowerShell, você pode executar o seguinte comando:

bash -c "comando"

Este truque permite adicionar comandos Bash a arquivos em lote ou scripts do PowerShell. A janela do shell Bash aparecerá quando um comando Bash estiver em execução.

Atualização : se você tiver vários ambientes Linux instalados, poderá usar o comando wslconfig para escolher o ambiente Linux padrão usado ao executar o bash -ccomando.


Para criar um atalho para um script Bash de dentro do Windows, basta criar um atalho normalmente. Para o destino do atalho, use o bash -ccomando que descrevemos acima e aponte-o para o script Bash que você criou.

For example, you’d point a shortcut at ” bash -c "~/myscript.sh" ” to run the example script above. You can also just run this command from a Command Prompt or PowerShell window, too.