Comparação de Valores
Sintaxe para Comparação:
Utilize duplos parênteses para comparações numéricas:
(( "$valor1" < "$valor2" )) # Menor que
(( "$valor1" <= "$valor2" )) # Menor ou igual
(( "$valor1" > "$valor2" )) # Maior que
(( "$valor1" >= "$valor2" )) # Maior ou igual
Comandos para Comparação:
[ "$valor1" -eq "$valor2" ] # Igual
[ "$valor1" -ne 5 ] # Diferente
[ "$valor1" -gt 10 ] # Maior que
[ "$valor1" -ge 8 ] # Maior ou igual
[ "$valor1" -lt "$valor2" ] # Menor que
[ "$valor1" -le "$valor2" ] # Menor ou igual
Exemplo de Configuração:
#!/bin/bash
contagem=$(grep 'SISTEMA-X:' /tmp/config.txt | wc -l)
if [ $contagem -eq 0 ]; then
cat << CFG >> /tmp/config.txt
###################################
# APLICATIVO: Nome do sistema
# RESPONSAVEL_A: Administrador A
# RESPONSAVEL_B: Administrador B
# DESCRICAO: Função do equipamento
###################################
CFG
elif [ $contagem -eq 1 ]; then
echo "Conflito detectado, requer verificação manual"
else
echo "Configurações duplicadas: $contagem ocorrências"
fi
Verificação de Conteúdo
Diferança entre verificar vazio e zero:
[ -z "$var" ] # Verifica string vazia
[ "$var" -eq 0 ] # Verifica valor numérico zero
Uso de Aspas e Crases
#!/bin/bash
data_ref=$1
echo '$data_ref' # Aspas simples: exibe literal
echo "$data_ref" # Aspas duplas: interpreta variáveis
echo \`date\` # Crases executam comandos
Regras Principais:
- Aspas simples: Bloqueiam expansão de variáveis
- Aspas duplas: Permitem expansão de variáveis
- Crases: Executam comandos internos
Manipulação de Texto com Sed
Inserção:
sed -i '3i Texto inserido' arquivo.txt # Antes da linha 3
sed -i '4a Texto após' arquivo.txt # Após linha 4
Substituição:
sed -i '5c Nova linha' arquivo.txt # Substitui linha 5
sed -i 's/antigo/novo/g' arquivo.txt # Substituição global
Exclusão:
sed -i '/padrao/d' arquivo.txt # Remove linhas
sed -i '2,4d' arquivo.txt # Remove intervalo
Processamento com Awk e Grep
awk 'NR==1 {print}' arquivo.txt # Primeira linha
grep 'padrao' arquivo.txt | grep -v '# ' # Filtra comentários
Estruturas de Repetição
Loop Numérico:
declare -i total=0
for ((i=1; i<=5; i++)); do
total+=$i
done
Iteração em Lista:
for item in elemento1 elemento2; do
echo $item
done
Proecssamento de Arquivos:
contador=1
for linha in $(grep -n 'TMOUT' perfil.txt); do
num_linha=$(echo $linha | cut -d: -f1)
if [ $contador -eq 1 ]; then
sed -i "${num_linha}s/.*/TMOUT=600/" perfil.txt
fi
((contador++))
done