Shell Scripting Introdutório
Aula 8 de 8
Primeiro Script
#!/bin/bash
# Meu primeiro script
echo "Olá, mundo!"
echo "Data: $(date)"
echo "Usuário: $USER"
chmod +x script.sh
./script.sh
Variáveis
#!/bin/bash
NOME="Linux"
echo "Olá, $NOME"
echo "Olá, ${NOME}!" # chaves para delimitar
# Variáveis especiais
echo $0 # nome do script
echo $1 # primeiro argumento
echo $# # número de argumentos
echo $? # código de saída do último comando
Condicionais
#!/bin/bash
if [ -f "/etc/passwd" ]; then
echo "Arquivo existe"
else
echo "Arquivo não existe"
fi
# Comparações
# -eq, -ne, -lt, -gt (números)
# ==, != (strings)
# -f, -d, -e (arquivo, diretório, existe)
# -z, -n (string vazia, não vazia)
if [ "$1" == "start" ]; then
echo "Iniciando..."
elif [ "$1" == "stop" ]; then
echo "Parando..."
else
echo "Uso: $0 {start|stop}"
fi
Loops
# for
for i in {1..5}; do
echo "Iteração $i"
done
for arquivo in *.txt; do
echo "Processando: $arquivo"
done
# while
COUNT=0
while [ $COUNT -lt 5 ]; do
echo $COUNT
((COUNT++))
done
Funções
#!/bin/bash
log() {
local mensagem=$1
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $mensagem"
}
log "Script iniciado"
log "Processando arquivos"
log "Script finalizado"
Dicas de Boas Práticas
#!/bin/bash
set -euo pipefail # para em erro, undefined var, pipe falho
# Sempre use aspas em variáveis
echo "$NOME" # certo
echo $NOME # errado (quebra se tiver espaços)
# Valide argumentos
if [ $# -eq 0 ]; then
echo "Uso: $0 <arquivo>"
exit 1
fi
Shell scripting é a cola que une o Linux. Invista em aprender bem — vai economizar horas de trabalho repetitivo.