next up previous contents index
Next: for Up: if/else Previous: ``And'' y "or'' de   Índice General   Índice de Materias


Comprobando condiciones

Al hacer un if, solo puedes comprobar estados de salida, pero eso no quiere decir que indirectamente no puedas comprobar otro tipo de condiciones, como por ejemplo si existe un archivo, si dos strings son iguales... La manera de hacer esto es mediante el uso de operadores de comparación sobre strings (ver tabla 2.3 en la página [*])y el uso de [ ] (con los dos espacios incluidos), que devuelve como estado de salida el resultado de aplicarle un operador de comparación a un string.

Ej:
echo "diga si o no: "
read var
if [ var == "si" ]
then
    echo "has dicho -si-"
else
    echo "no has dicho -si-, has dicho -$var-"
fi

Ej:

    if [ -d correo ]
   then
       echo "El archivo -correo- existe y es un directorio"
   fi
  
Ej:

    if [ -e correo ] && [ ! -d correo ]
   then
       echo "El archivo -correo- existe y NO es un directorio"
   fi
  


Tabla: Operadores de comparación de strings
Expresiones Ciertas si ...
string == string lexicográficamente igual
string != string lexicográficamente distinto
string < string lexicográficamente menor
string > string lexicográficamente mayor
-d archivo archivo existe y es un directorio
-e archivo archivo existe
-f archivo archivo existe y es un fichero normal
-r archivo tienes permisos de lectura sobre archivo
-s archivo archivo existe y no está vacio
-w archivo tienes permisos de escritura sobre archivo
-x archivo tienes permiso x sobre archivo
-n variable variable no es null
-O archivo eres el propietario de archivo
-G archivo perteneces a un grupo que tiene acceso a archivo
expresion -a expresion AND
expresion -o expresion OR
archivo1 -nt archivo2 archivo1 es más nuevo que archivo2
archivo1 -ot archivo2 archivo1 es más antiguo que archivo2


También se pueden hacer operaciones de comprobación de strings interpretadas aritméticamente (ver tabla 2.4 en la página [*]).


Tabla: Operaciones sobre strings interpretadas aritméticamente.
-lt menor que
-le menor o igual que
-eq igual que
-ge mayor o igual que
-gt mayor que
-ne distinto que



next up previous contents index
Next: for Up: if/else Previous: ``And'' y "or'' de   Índice General   Índice de Materias
Alberto Cortés 2001-03-26