O Que É Bash? O Bourne Again Shell Explicado
Bash é um shell Unix e linguagem de scripting amplamente usados, o interpretador de comandos padrão na maioria dos sistemas Linux e na maioria dos runners de CI.
Bash, abreviação de "Bourne Again SHell", é o programa que roda a vasta maioria dos shell scripts no mundo, incluindo a maioria dos steps em um pipeline de CI. Ele é compatível com o antigo Bourne shell mas adiciona arrays, melhor tratamento de strings e muitas conveniências. Por ser tão comum, "shell script" e "Bash script" são frequentemente usados de forma intercambiável.
De onde o Bash veio
Bash foi escrito como um substituto livre para o Bourne shell original (sh) do Unix. Ele manteve compatibilidade retroativa enquanto adicionava recursos, e se tornou o shell de login padrão na maioria das distribuições Linux.
Bash vs sh
O sh puro é um shell POSIX mínimo; o Bash é um superset com extras como arrays, testes [[ ]] e substituição de processos. Um script que usa recursos exclusivos do Bash vai quebrar se rodado pelo sh, o que é uma causa comum de bugs do tipo "funciona localmente, falha na CI".
O que o Bash adiciona
- Arrays e arrays associativos para dados estruturados.
- A construção de teste
[[ ]]com pattern matching. - Brace expansion como
file.{js,css}. - A opção
set -o pipefailpara pipelines mais seguros.
Bash como linguagem de scripting
Bash é mais que um prompt: ele tem variáveis, loops, funções e condicionais. Pipelines de CI se apoiam fortemente nele para colar ferramentas de build, rodar testes e moldar a saída, então um pouco de fluência em Bash rende muito.
Por que o Bash importa em CI
A maioria dos steps run: de workflow executa através do Bash por padrão no Linux. A forma confiável de fazer um script Bash de CI falhar ruidosamente no primeiro erro é iniciá-lo com set -euo pipefail, que transforma falhas silenciosas em jobs interrompidos.
Bash em runners gerenciados
Os runners Latchkey trazem um Bash padrão para que o mesmo script rode identicamente toda vez. Você ainda controla a rigidez: adicionar set -euo pipefail no topo de um step é o hábito de maior alavancagem para pipelines confiáveis.
Principais conclusões
- Bash é o shell padrão na maioria dos sistemas Linux e runners de CI.
- Ele é um superset do POSIX sh, então recursos exclusivos do Bash podem quebrar sob o sh puro.
- Iniciar scripts com
set -euo pipefailfaz o Bash falhar rápido e alto na CI.