/
/

O que é script Bash? | Tutorial e dicas de Bash

por Team Ninja
What is bash scripting blog banner image

Resumo instantâneo

Esta postagem do blog NinjaOne oferece uma lista abrangente de comandos CMD básicos e um mergulho profundo nos comandos do Windows, com +70 comandos CMD essenciais para usuários iniciantes e avançados. Explicamos sobre comandos práticos de prompt de comando para gerenciamento de arquivos, navegação em diretórios, solução de problemas de rede, operações de disco e automação, tudo com exemplos reais para maximizar a produtividade. Seja para aprender comandos básicos CMD ou dominar ferramentas avançadas de CLI do Windows, este guia ajuda você a usar o prompt de comando com mais eficiência.

Pontos principais

  • Bash (Bourne Again Shell) é ao mesmo tempo um interpretador de linha de comando e uma linguagem de script embutida na maioria dos sistemas Linux e baseados em Unix.
  • Um script Bash é um arquivo de texto simples com comandos executados de cima para baixo, usado para automatizar tarefas repetitivas de administração de sistemas.
  • Os blocos de construção básicos são variáveis, estruturas condicionais, loops e funções, todos escritos em uma sintaxe que começa com a linha shebang (#!/bin/bash).
  • Bash roda nativamente em Linux e macOS e está disponível no Windows por meio do Subsistema do Windows para Linux (WSL).
  • Entre os usos mais comuns, estão: automatizar backups, diagnósticos de sistema, gerenciamento de arquivos e tarefas em lote, como baixar arquivos a partir de uma lista de URLs.

Linux é um sistema operacional poderoso e versátil, reconhecido pela robustez, pela segurança e por ser de código aberto. É um sistema do tipo Unix, ou seja, compartilha muitas características com o Unix original, desenvolvido nos anos 1970. O Linux se tornou a escolha preferida em diversos ambientes de computação, de computadores pessoais e servidores a sistemas embarcados e supercomputadores. A flexibilidade e as opções de personalização, somadas a uma comunidade forte de apoio, ajudaram a impulsionar sua adoção em larga escala.

Também há um guia em vídeo: O que é script Bash? | Tutorial e dicas de Bash.

O que é script Bash?

O shell Bash funciona como um interpretador de comandos poderoso para interação direta com o usuário e também como linguagem de script para automatizar tarefas. Permite executar comandos, navegar pelo sistema de arquivos e rodar scripts que automatizam tarefas repetitivas. Na prática, Bash é um ambiente de programação, o que o torna uma ferramenta essencial para administradores de sistemas, programadores e usuários avançados.
Diferente de outras linguagens de script, como Python ou Perl, Bash é profundamente integrado aos ambientes UNIX/Linux e oferece interação direta com o kernel e o sistema de arquivos do sistema operacional. Entre seus recursos exclusivos, estão: integração nativa com a linha de comando, acesso direto a funções e utilitários do sistema e facilidade de uso para manipulação de arquivos e tarefas de administração. Bash se destaca pela eficiência nas operações típicas de sistema e pelo amplo uso em tarefas de automação.

A história do script Bash

Uma das filosofias centrais do design de sistemas de código aberto é priorizar a legibilidade humana, em forte contraste com a ofuscação comum em sistemas operacionais proprietários. No centro dessa filosofia, e de praticamente todos os sistemas Linux, está o ambiente de interface de linha de comando, ou “shell”.

O shell bash é um dos mais populares e usados no mundo Linux. É um substituto aprimorado do Bourne Shell original (sh), desenvolvido por Stephen Bourne no Bell Labs da AT&T. Bash foi escrito por Brian Fox para o Projeto GNU como alternativa em software livre ao Bourne Shell.

Por que o script Bash é importante?

Não dá para exagerar a importância do script Bash na administração de sistemas e no desenvolvimento, sobretudo dentro da filosofia de código aberto do Linux, que valoriza transparência e legibilidade.

Bash encarna esse espírito ao oferecer uma sintaxe clara e legível, fácil de entender e modificar. Seus scripts são arquivos de texto simples, o que os torna transparentes e editáveis por natureza. Essa abertura combina com a filosofia do Linux, em que entender e alterar o comportamento do sistema não é apenas possível: é incentivado.

Principais papéis do Bash na administração de sistemas e no desenvolvimento

  • Automação simplificada:os scripts Bash são essenciais para automatizar tarefas, de manipulações simples de arquivos a processos complexos de implantação. Essa automação não economiza apenas tempo: também reduz erros humanos e aumenta a consistência em tarefas repetitivas.
  • Manutenção e monitoramento de sistemas: com script Bash, os administradores monitoram a saúde do sistema e executam tarefas de manutenção. Os scripts automatizam verificações de espaço em disco, acompanham o uso da rede e até aplicam atualizações ou patches automaticamente, mantendo os sistemas funcionando bem e com segurança.
  • Solução rápida de problemas: quando algo dá errado, é possível escrever ou ajustar um script Bash rapidamente para diagnosticar e muitas vezes corrigir o problema. Essa flexibilidade e o ciclo curto de aprendizado e feedback são cruciais em ambientes sensíveis ao tempo, em que a resposta rápida mantém a integridade e o desempenho do sistema.
  • Soluções sob medida: ao contrário dos sistemas proprietários, em que a personalização costuma ser limitada, o script Bash no Linux permite ajustar soluções exatamente às necessidades de cada caso. Isso vai de scripts de backup personalizados a relatórios de sistema sob medida, um nível de customização que os sistemas proprietários raramente oferecem.
  • Integração e compatibilidade: os scripts Bash convivem bem com outras tecnologias, o que os torna ideais para ambientes que misturam ferramentas e linguagens. Eles chamam scripts Python, conectam a bancos de dados ou tratam dados em vários formatos, o que mostra uma versatilidade notável.

Script Bash não é só uma ferramenta: é a materialização da ética do código aberto, feita de transparência, legibilidade e autonomia do usuário. Sua importância cresce em ambientes Linux, onde esses valores são a base, o que faz do script Bash uma habilidade essencial para quem trabalha com sistemas abertos.

Primeiros passos com script Bash

A configuração do Bash para scripts varia conforme o sistema operacional.

  • Linux: Bash normalmente já vem instalado. Se precisar atualizar ou [re]instalar pelo gerenciador de pacotes, use:
    • Debian/Ubuntu: sudo apt-get install bash
    • Fedora/RHEL: sudo yum install bash
    • OpenSUSE: sudo zypper in bash
  • Windows: instale o Bash usando o Subsistema do Windows para Linux (WSL), disponível na Microsoft Store. No WSL/WSL2, será preciso instalar distribuições Linux compatíveis com WSL2, como Ubuntu, openSUSE ou Debian.
  • macOS: dá para instalar o Bash com gerenciadores de pacotes como MacPorts (sudo port install bash) ou Homebrew (brew install bash).
  • No macOS, o acesso ao terminal é pelo Terminal.app, mas é possível instalar outros terminais com recursos adicionais.

Conceitos básicos e sintaxe

A sintaxe de scripts Bash é mais do que um conjunto de regras para escrever comandos: é a porta de entrada para os ambientes Unix/Linux. No Bash, todo comando, função e script opera dentro desses ambientes, com interação direta com o kernel, o sistema de arquivos e os programas instalados.

A linha shebang

No início de qualquer script Bash, você normalmente encontra a linha shebang: #!/bin/bash. (“Shebang” é a junção de “sharp”, o termo musical para #, com “bang”, termo tipográfico para !.) Essa linha é fundamental, porque indica qual interpretador deve executar o script.

Variáveis

Declarar uma variável no Bash é simples. Por exemplo: username=”Alice”. Para usar o valor armazenado, basta colocar um cifrão na frente: echo $username. Variáveis guardam strings, números ou a saída de comandos, e seus valores podem mudar ao longo do script. Por exemplo, file_count=$(ls | wc -l) armazena em file_count a quantidade de arquivos de um diretório.

Execução de comandos em scripts

Nos scripts Bash, os comandos são executados em sequência, de cima para baixo. Essa ordem importa, porque define como o script processa dados e reage a condições.

Por exemplo, um comando que muda o diretório de trabalho atual (como cd /var/log) afeta todos os comandos seguintes que dependem desse diretório. Entender essa execução sequencial é essencial para escrever scripts eficazes, já que ela influencia a atribuição de variáveis, a chamada de funções e o tratamento das saídas.

Estruturas de controle: condicionais

As estruturas condicionais são essenciais no Bash para tomar decisões com base em determinadas condições. A estrutura básica usa if, else e elif:

  • if: inicia a condicional, seguido de uma expressão de teste, como if [ $count -gt 10 ].
  • else: define os comandos alternativos quando a condição do if é falsa.
  • elif: usado para condições adicionais.

Exemplo:

   if [ $count -gt 10 ]; then

       echo "Count is greater than 10."

   elif [ $count -eq 10 ]; then

       echo "Count is exactly 10."

   else

       echo "Count is less than 10."

   fi

Essas estruturas permitem que os scripts lidem com cenários diferentes de forma dinâmica.

Estruturas de controle: loops

Os loops no Bash executam tarefas repetitivas com eficiência e são indispensáveis para processar arquivos, gerar relatórios ou aguardar eventos. Os principais tipos são for, while e until:

  • loops for percorrem uma lista ou intervalo: for i in {1..5}; do echo $i; done.
    • Loops e arrays: for item in ${array[@]}; do para percorrer arrays.
  • loops while rodam enquanto uma condição for verdadeira: while [ $i -lt 10 ]; do i=$((i+1)); done.
  • loops until rodam até que uma condição se torne verdadeira: until [ $i -eq 10 ]; do i=$((i+1)); done.

Funções

As funções nos scripts Bash encapsulam blocos de código reutilizáveis. São definidas por um nome, seguido de parênteses e de uma série de comandos entre chaves. Por exemplo:

   greet() {

       echo "Hello, $1"

   }

   greet "Alice"

Essa função recebe um parâmetro e imprime uma saudação. As funções favorecem o reúso de código e a legibilidade, deixando os scripts mais organizados e fáceis de manter.

Comentários para melhorar a legibilidade

Comentários são linhas do script Bash que não são executadas, mas servem para explicar o código. São essenciais para a legibilidade e a manutenção. Começando com #, um comentário pode descrever o que determinado trecho faz, por que certa abordagem foi escolhida ou trazer qualquer informação relevante.

Esse comentário ajuda quem lê o script a entender rapidamente o propósito do loop, como neste exemplo:

   # Loop through files and print names

   for file in *.txt; do

       echo $file

   done

Noções de tratamento de erros e depuração

Tratar erros e depurar é fundamental no script Bash para garantir que tudo funcione como esperado e seja fácil de investigar. Entre as técnicas básicas, estão:

  • redirecionar mensagens de erro: command 2> error_log.txt.
  • usar set -e para interromper a execução em qualquer erro.
  • depurar com set -x para exibir cada comando antes de executá-lo.

A relação entre STDOUT e STDERR é essencial. Redirecionar com 2>&1 combina saída padrão e erros em um log completo. Entender esses conceitos ajuda a criar scripts robustos e confiáveis.

Combinando comandos com pipelines e redirecionamento

Pipelines e redirecionamento são recursos poderosos do Bash, usados para manipular a entrada e a saída dos comandos:

  • o pipe (|) passa a saída de um comando como entrada de outro, como em ls | grep -i txt.
  • o redirecionamento envia a saída para arquivos ou recebe a entrada de arquivos. > grava a saída em um arquivo, sobrescrevendo-o, enquanto >> acrescenta ao final. Da mesma forma, < lê a entrada de um arquivo. Por exemplo:
    • sobrescrever um arquivo: echo “Hello” > file.txt.
    • acrescentar a um arquivo: echo “World” >> file.txt.
    • ler a entrada: grep “Hello” < file.txt.

Esses comandos são essenciais para controlar o fluxo de dados nos scripts e viabilizam processamento e registro de dados mais complexos.

Escrevendo seu primeiro script Bash

Criar um script Bash envolve:

  • escrever o script em um editor de texto, começando pela linha shebang #!/bin/bash.
  • adicionar comandos, como echo “Hello World”.
  • salvar o script com a extensão .sh, por exemplo, hello_world.sh.
  • tornar o script executável: chmod +x hello_world.sh.
  • executar o script: ./hello_world.sh.

Entre as boas práticas, estão: usar nomes descritivos, organizar os scripts de forma lógica e definir as permissões corretas de arquivo.

Dicas e truques práticos

Dá para aprimorar suas habilidades em script Bash assim:

  • evite erros comuns, como deixar de colocar variáveis entre aspas.
  • use shellcheck com frequência para analisar os scripts.
  • recorra a funções para tarefas repetitivas.
  • mantenha os scripts modulares e bem documentados para facilitar a manutenção.
  • use controle de versão (como o Git) para acompanhar as mudanças.
  • use folhas de consulta (imprimíveis) de Bash para encurtar o ciclo de aprendizado. (Veja abaixo)

Essas práticas ajudam a desenvolver scripts Bash eficazes e fáceis de manter.

Aplicações reais do script Bash

Script Bash resolve problemas práticos em várias áreas, como:

  • automatizar diagnósticos de sistema e reparos na infraestrutura de TI.
  • criar scripts de backup de bancos de dados e tarefas de migração de dados.
  • automatizar tarefas diversas do usuário, como baixar arquivos em lote a partir de URLs.
  • personalizar fluxos de implantação no desenvolvimento de software.
  • estender a funcionalidade do bash-completion para comandos definidos pelo usuário.

Esses exemplos mostram a flexibilidade e o impacto do script Bash em cenários reais.

O futuro do script Bash

Daqui para frente, espera-se que o script Bash evolua com:

  • recursos mais avançados de orquestração na nuvem e de contêineres.
  • maior integração com ferramentas modernas de DevOps.
  • melhorias contínuas no suporte multiplataforma.

Esses avanços vão manter o Bash relevante no cenário em transformação da programação e do gerenciamento de sistemas.

Aproveite o poder do Bash: o caminho para o gerenciamento avançado de sistemas

O script Bash segue indispensável no mundo Linux e é central para a ética do design de sistemas de código aberto, que valoriza a legibilidade humana. É uma prova de que programar pode ser transparente, eficiente e centrado no usuário. A integração com o ambiente UNIX/Linux torna o Bash especialmente poderoso para manipular o sistema diretamente, o que o diferencia de outras linguagens de script. A simplicidade para automatizar tarefas, somada à capacidade de lidar com operações complexas, faz dele uma habilidade essencial para desenvolvedores e administradores de sistemas.

Dominar script Bash não só agiliza fluxos de trabalho: também permite que profissionais ajustem soluções a necessidades específicas, mantendo os sistemas estáveis, seguros e eficientes. À medida que a tecnologia evolui, a versatilidade e a adaptabilidade do Bash garantem sua relevância contínua, e o domínio da ferramenta deixa de ser só mais uma habilidade para se tornar uma vantagem real no mundo dinâmico do gerenciamento de sistemas e do desenvolvimento. Inclua script Bash no seu conjunto de ferramentas de automação e gerenciamento e siga aprimorando suas habilidades para não ficar para trás.

FAQs

Não. Linux é um sistema operacional completo. Bash é apenas o shell, o programa de linha de comando que interpreta o que você digita e executa seus scripts. Acontece que Bash é o shell padrão na maioria das distribuições Linux, mas não faz parte do Linux em si.

Ele também roda nativamente no macOS e no Windows por meio do WSL (Subsistema do Windows para Linux). Ou seja, dá para ter Linux sem Bash (algumas distros usam outros shells por padrão, como dash ou zsh) e Bash sem Linux (macOS, Windows).

Na prática, sim, pelo menos no nível básico. Não é preciso escrever scripts complexos de cabeça, mas ler um script Bash e entender o que ele faz é quase um requisito mínimo nas duas funções: ferramentas de implantação, pipelines de CI/CD e automação de servidores estão cheias disso.

Em um terminal. No Linux e no macOS, é o aplicativo Terminal (ou qualquer emulador de terminal). No Windows, depois de instalar o WSL, abra o terminal do WSL (ou o app de uma distribuição Linux, como o Ubuntu, da Microsoft Store) em vez do Prompt de Comando ou do PowerShell.

Recomendados para você

Pronto para simplificar as partes mais difíceis da TI?

Termos e condições NinjaOne

Ao clicar no botão “Aceito” abaixo, você indica sua aceitação dos seguintes termos legais, bem como dos nossos Termos de Uso:

  • Direitos de propriedade: A NinjaOne é proprietária e continuará a ser proprietária de todos os direitos, títulos e interesses relativos ao script (incluindo os direitos autorais). A NinjaOne está concedendo a você uma licença limitada para usar o script de acordo com os presentes termos legais.
  • Limitação de uso: Você só poderá usar o script para fins comerciais internos ou pessoais legítimos, sendo vedado compartilhar o script com terceiros.
  • Proibição de republicação: Em nenhuma circunstância você tem permissão para republicar o script em qualquer biblioteca de scripts pertencente ou sob o controle de qualquer outro fornecedor de software.
  • Isenção de responsabilidade da garantia: O script é fornecido “no estado em que se encontra” e “conforme disponível”, sem qualquer tipo de garantia. A NinjaOne não promete ou garante que o script estará livre de defeitos ou que atenderá às suas necessidades ou expectativas específicas.
  • Assunção de riscos: O uso do script é por sua própria conta e risco. Você reconhece que há certos riscos inerentes ao uso do script, e você compreende e assume cada um desses riscos.
  • Renúncia e isenção de responsabilidade: Você não responsabilizará a NinjaOne por consequências adversas ou não intencionais resultantes do seu uso do script e renunciará a quaisquer direitos ou tutelas legais que possa ter contra a NinjaOne em relação ao seu uso do script.
  • EULA: Se você for cliente da NinjaOne, o uso do script está sujeito ao Contrato de Licença de Usuário Final aplicável a você (EULA).