O Que É um Shell Script? Automatizando Comandos em um Arquivo
Um shell script é um arquivo de texto contendo uma série de comandos de shell que rodam em ordem, usado para automatizar tarefas em vez de digitar cada comando à mão.
Um shell script transforma uma sequência de comandos em um programa repetível. Em vez de digitar dez comandos para construir e testar, você os salva em um arquivo e o roda uma vez. Pipelines de CI são, em essência, shell scripts: cada step é um pequeno script que o runner executa.
O que um shell script contém
É texto simples: comandos, variáveis, condicionais e loops, executados de cima para baixo por um shell. A primeira linha geralmente é uma shebang que nomeia o interpretador, e o arquivo é tornado executável para que possa rodar diretamente.
Executando um script
Você pode rodá-lo passando-o para um shell (bash deploy.sh) ou, se for executável e tiver uma shebang, chamando-o diretamente (./deploy.sh). O shell lê cada linha, a expande e a executa em sequência.
Por que scripts importam
- Repetibilidade: os mesmos passos rodam da mesma forma toda vez.
- Controle de versão: os scripts vivem no repo ao lado do código.
- Composabilidade: pequenos scripts se combinam em workflows maiores.
Tornando os scripts seguros
Um script ingênuo continua depois que um comando falha, o que pode esconder erros. Adicionar set -euo pipefail perto do topo faz o script parar no primeiro erro, em variáveis indefinidas e em falhas dentro de pipelines.
Shell scripts em CI
Steps de CI são shell scripts curtos. Mantê-los pequenos, estritos e versionados no repo significa que qualquer um pode ler o que um pipeline faz e rodá-lo localmente para reproduzir uma falha.
Scripts em runners gerenciados
O Latchkey roda seus scripts de step em um ambiente de shell limpo e consistente, então um script que passa uma vez tende a continuar passando. Falhas transitórias de infraestrutura têm retry, então bugs genuínos de script se destacam em vez de se esconderem atrás da instabilidade.
Principais conclusões
- Um shell script é um arquivo de comandos executados em sequência para automatizar uma tarefa.
- Uma shebang line e o bit executável permitem que um script rode diretamente.
- Steps de CI são shell scripts; torná-los estritos com
set -euo pipefailos mantém honestos.