Olá, Daniel. Como vai?
Essa é uma dúvida extremamente comum para quem está começando a criar scripts no Linux, pois o Bash possui uma forma bem específica de tratar comparações, diferenciando números de textos.
Sua pesquisa foi muito precisa! Esses operadores que você listou (como -eq, -gt, etc.) são chamados de operadores relacionais numéricos. Eles são essenciais dentro de estruturas como o while ou o if.
Para agregar valor ao seu aprendizado, deixo aqui uma explicação de por que usamos esses termos e como eles se comparam aos que usamos em outras linguagens:
- A origem dos nomes: Eles são abreviações do inglês, o que ajuda muito a memorizar:
-eq: Equal (Igual)-ne: Not Equal (Não igual/Diferente)-lt: Less Than (Menor que)-le: Less or Equal (Menor ou igual)-gt: Greater Than (Maior que)-ge: Greater or Equal (Maior ou igual)
Dica de Ouro: Números vs. Strings
Uma regra de ouro no Bash é que esses operadores acima são exclusivos para números inteiros. Se você tentar comparar palavras (strings), os operadores mudam:
- Para comparar se um texto é igual a outro, usamos o símbolo de igual:
== - Para comparar se é diferente, usamos:
!=
Exemplo prático no laço while:
contador=1
# Enquanto o contador for menor ou igual (-le) a 5
while [ $contador -le 5 ]
do
echo "Processando log número $contador"
contador=$((contador + 1))
done
Note que o espaço dentro dos colchetes [ ] é obrigatório para que o Bash consiga interpretar o operador corretamente.
Dominar esses operadores vai te dar muita segurança na hora de criar scripts que precisam tomar decisões ou processar arquivos de logs baseados em contagens.
Espero que possa ter lhe ajudado!