En Bash no existen valores booleanos nativos, pero sí existen comandos que devuelven verdadero o falso:
true # Devuelve 0 (verdadero)
false # Devuelve 1 (falso)En Bash, un 0 significa verdadero y un número distinto de 0 (generalmente 1) significa falso.
Los operadores se usan para comparar números o cadenas de texto.
| Operador | Significado |
|---|---|
-eq |
Igual que |
-ne |
Distinto que |
-lt |
Menor que |
-le |
Menor o igual que |
-gt |
Mayor que |
-ge |
Mayor o igual que |
| Operador | Significado |
|---|---|
= |
Igual |
!= |
Diferente |
< |
Menor lexicográficamente |
> |
Mayor lexicográficamente |
Ejemplo de uso básico:
if [ 3 -gt 4 ]; then
echo "Mayor que 4"
elif false; then
echo "Nunca pasar"
else
echo "4 o menor"
fiNotas:
- Los corchetes
[ ]son equivalentes al comandotest.- Siempre debe haber un espacio después del
[y antes del].- La instrucción
thendebe ir en la misma línea o en una nueva, separada con;.
Puedes combinar condiciones con operadores lógicos.
if [ 10 -lt 14 ] && [ 10 -gt 12 ]; then
echo "verdadero"
fiTambién puedes usar [[ ... ]] para condiciones más seguras (recomendado):
if [[ 10 -lt 14 && 10 -gt 12 ]]; then
echo "verdadero"
fi
[[ ... ]]permite el uso de operadores lógicos&&y||dentro del mismo bloque sin necesidad de múltiples[ ].
Las tres siguientes formas son equivalentes:
test condition
[ condition ]
[[ condition || condition ]]Ejemplo real:
if test 10 -eq 10; then
echo "10 es igual a 10"
fiAutor: Fravelz