Saltar a contenido

Comparadores.

Comparadores Aritméticos.

Comparador
Significado
-eq Igual a (Equeal to)
-ne No Igual (Not Equal)
-gt Mayor que (Greater Than)
-ge Mayor o igual (Greater or Equal)
-lt Menor que (Lower Than)
-le Menor o igual (Lower or Equal)

Ejemplo 1

if [ $edad -gt 25 ]
then
    echo "Tienes más de 25 años."
else
    echo "Tienes 25 o menos años."
fi

Ejemplo 2

if [ $examenes -ne 20 ]
then
    echo "No tenemos exactamente 20 exámenes entregados, algo ha ido mal"
else
    echo "Han entregado 20 exámenes."
fi

Ejemplo 3

if [ $memoria -le 100000 ]
then
    echo "Quedan 100MB o menos en el sistema."
fi

Comparadores de Archivos.

Comparador
Significado
-f Verdadero si es un fichero
-e Verdadero si existe
-d Verdadero si es un directorio
-r Verdadero si tengo permisos de lectura
-w Verdadero si tengo permisos de escritura
-x Verdadero si tengo permisos de ejecución
-O Verdadero si soy el usuario propietario
-G Verdadero si pertenezco al grupo propietario
-s Verdadero si el fichero NO está vacío
-L Verdadero si se trata de un enlace simbólico

Ejemplo 1

if [ -e $carpeta ]
then
    echo "La carpeta existe, aunque quizá se trate de un fichero."
else
    echo "La carpeta no existe"
fi

Ejemplo 2

if [ -d $carpeta ]
then
    echo "La carpeta existe y se trata seguro de una carpeta."
else
    echo "La carpeta no existe"
fi

Ejemplo 3

if [ -s $fichero ]
then
    echo "El fichero contiene información."
else
    echo "El fichero está vació y lo voy a borrar."
    rm -f $fichero
fi

Comparadores de cadenas / variables.

Comparador
Significado
= Verdadero si es igual
!= Verdadero si es diferente
-n Verdadero si la variable tiene contenido
-z Verdadero si la variable está vacía

Ejemplo 1

if [ $usuario = "ajc" ]
then
    echo "Bienvenido Alejandro!"
else
    echo "¿Quién eres?"
    read -p "Introduce tu nombre: " nombre
fi

Ejemplo 2

if [ $salir != "s" ]
then
    echo "El usuario quiere seguir jugando."
else
    echo "El usuario quiere continuar jugando."
fi

Ejemplo 3

if [ -z $respuesta]
then
    echo "Hubo algún error y se ha recibido una respuesta vacía"
fi