# Declarar variáveis (sem espaços!)nome="João"idade=25# Usar variáveisecho"Olá, $nome!"echo"Você tem ${idade} anos"# Variáveis especiais$0# Nome do script$1, $2# Argumentos do script$## Número de argumentos$?# Código de retorno
Arrays
# Criar arrayfrutas=("maçã""banana""laranja")
# Acessar elementosecho"${frutas[0]}"# Primeiro elementoecho"${frutas[@]}"# Todos elementosecho"${#frutas[@]}"# Tamanho do array# Adicionar elementofrutas+=("uva")
Input e Output
# Ler input do usuárioecho"Digite seu nome:"read nome
# Redirecionar outputecho"Log" > arquivo.txt # Sobrescreverecho"Mais log" >> arquivo.txt # Anexar# Pipe - conectar comandosls | grep".txt"
String Operations
# Manipulação de stringstexto="Olá Mundo"# Comprimentoecho${#texto}# Substringecho${texto:0:3}# Primeiros 3 caracteres# Substituiçãoecho${texto/Mundo/Terra}
Operadores e Testes
# Operadores numéricos
[ $a -eq $b ] # Igual
[ $a -ne $b ] # Diferente
[ $a -gt $b ] # Maior que
[ $a -lt $b ] # Menor que# Operadores de string
[ -z "$string" ] # Vazia
[ -n "$string" ] # Não vazia
[ "$a" = "$b" ] # Strings iguais# Operadores de arquivo
[ -f "$arquivo" ] # Existe e é arquivo
[ -d "$dir" ] # Existe e é diretório
[ -x "$arquivo" ] # Tem permissão de execução
# Ativar modo debugset -x # Mostra comandos executadosset -e # Para se houver erro# Debug em parte específica
{
set -x
# código para debugarset +x
}
# Ver variáveis definidasset | less
Boas Práticas
# Shebang no início do script
#!/bin/bash
# Definir variáveis em maiúsculoNOME_ARQUIVO="config.txt"# Usar {} para variáveisecho"${NOME_ARQUIVO}_backup"# Verificar retorno de comandosif ! comando; thenecho"Erro ao executar comando"exit 1
fi