Como criar e executar scripts de shell Bash no Windows 10

Índice:

Como criar e executar scripts de shell Bash no Windows 10
Como criar e executar scripts de shell Bash no Windows 10

Vídeo: Como criar e executar scripts de shell Bash no Windows 10

Vídeo: Como criar e executar scripts de shell Bash no Windows 10
Vídeo: 5 coisas que a calculadora do iPhone faz - YouTube 2024, Abril
Anonim
Com a chegada do Bash shell 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 em lotes do Windows ou em um script do PowerShell.
Com a chegada do Bash shell 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 em lotes do Windows ou em um script do PowerShell.

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

Como escrever um script Bash no Windows 10

Ao escrever scripts de shell no Windows, lembre-se de que sistemas como o Windows e o UNIX, como o Linux, usam diferentes caracteres de "fim de linha" 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ê forneça um arquivo de fim-de-linha UNIX clicando em Editar> Conversão EOL> Formato UNIX / OSX.

No entanto, é melhor 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 do vi é mais poderoso, mas se você nunca usou antes, é recomendável começar com o nano. É mais fácil de usar se você é novo.
No entanto, é melhor 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 do vi é mais poderoso, mas se você nunca usou antes, é recomendável começar com o nano. É mais fácil de usar se você é novo.

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 inicial, portanto, o caminho completo é /home/username/myscript.sh.)

Comece seu script de shell com a linha:
Comece seu script de shell com a linha:

#!/bin/bash

Digite os comandos que você deseja executar, cada um em sua própria linha. O script executará cada comando por sua vez. Adicione um caractere "#" antes de uma linha para tratá-lo como "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 sobre scripts Bash no Linux. As mesmas técnicas funcionarão no Bash no Ubuntu no Windows.

Não é possível executar programas do Windows a partir do ambiente Bash. Você está restrito aos comandos e utilitários do terminal do Linux, assim como faria em um sistema Linux típico.

Por exemplo, vamos usar um script básico de "hello world" como exemplo aqui:

#!/bin/bash # set the STRING variable STRING='Hello World!' # print the contents of the variable on screen echo $STRING

Se você estiver usando o editor de texto Nano, salve o arquivo pressionando Ctrl + O e, em seguida, Enter. Feche o editor pressionando Ctrl + X.

Image
Image

Tornar o script executável e, em seguida, execute-o

Você provavelmente desejará tornar o script executável para poder 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 para o seu script:

chmod +x ~/myscript.sh

Para executar o script, você pode agora 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.
Para executar o script, você pode agora 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)

Image
Image

Como trabalhar com arquivos do Windows em um script Bash

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

Como incorporar comandos Bash em um script em lote ou PowerShell

Por fim, se você tiver um arquivo de lote existente ou um script do PowerShell no qual deseja incorporar comandos, poderá executar comandos Bash diretamente usando o comando

bash -c

comando.

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

bash -c 'command'

Esse truque permite adicionar comandos Bash em arquivos em lotes ou scripts do PowerShell. A janela do shell Bash aparecerá quando um comando Bash estiver sendo executado.

Atualizar: 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 -c

comando.

Image
Image

Para criar um atalho para um script Bash a partir do Windows, basta criar um atalho como o normal. Para o alvo do atalho, use o

bash -c

comando que delineamos acima e aponte para o script Bash que você criou.

Por exemplo, você apontaria um atalho para”

bash -c '~/myscript.sh'

”Para executar o script de exemplo acima. Você também pode simplesmente executar esse comando a partir de uma janela Prompt de Comando ou PowerShell também.

Recomendado: