Donde 'expr' puede ser cualquiera de las siguientes cosas:
| -b fichero | Cierto si fichero existe y es un dispositivo de bloques. |
| -c fichero | Cierto si fichero existe y es un dispositivo de caracteres. |
| -d fichero | Cierto si fichero existe y es un directorio. |
| -e fichero | Cierto si fichero existe. |
| -f fichero | Cierto si fichero existe y es un fichero normal. |
| -g fichero | Cierto si fichero existe y tiene el bit de grupo activado. |
| -k fichero | Cierto si fichero tiene el bit de sticky activado. |
| -L fichero | Cierto si fichero existe y es un enlace simbólico. |
| -p fichero | Cierto si fichero existe y es una tubería nombrada. |
| -r fichero | Cierto si fichero existe y es legible. |
| -s fichero | Cierto si fichero existe y su tamaño es mayor que cero. |
| -S fichero | Cierto si fichero existe y es un socket. |
| -t [df] | Cierto si df está abierto en un terminal. Si df es omitido, se toma 1 (salida estándar) por defecto. |
| -u fichero | Cierto si fichero existe y tiene el bit de usuario activo. |
| -w fichero | Cierto si fichero existe y es escribible. |
| -x fichero | Cierto si fichero existe y es ejecutable. |
| -O fichero | Cierto si fichero existe y es propiedad del identificador efectivo del usuario. |
| -G fichero | Cierto si fichero existe y es propiedad del identificador efectivo del grupo. |
| fichero1 -nt fichero2 | Cierto si fichero1 es más reciente (en base a la fecha de modificación) que fichero2. |
| fichero1 -ot fichero2 | Cierto si fichero1 es más antiguo que fichero2. |
| fichero1 -ef fichero2 | Cierto si fichero1 y fichero2 tienen el mismo número de dispositivo y de nodo-i. |
| -z cadena | Cierto si la longitud de cadena es cero. |
| -n cadena | Cierto si la longitud de cadena no es cero. |
| cadena | Cierto si la longitud de cadena no es cero. |
| cadena1 = cadena2 | Cierto si las cadenas son iguales. |
| cadena1 != cadena2 | Cierto si las cadenas no son iguales. |
| ! expr | Cierto si expr es falsa. |
| expr1 -a expr2 | Cierto si expr1 y expr2 son ciertas. |
| expr1 -o expr2 | Cierto si expr1 o expr2 son ciertas. |
| arg1 OP arg2 | OP es uno de los siguientes valores: -eq, -ne, -lt, -le, -gt, o -ge. Estos operadores binarios aritméticos devuelven cierto si arg1 es igual, distinto, menor que, menor o igual que, mayor que, o mayor o igual que arg2, respectivamente. arg1 y arg2 pueden ser enteros positivos, enteros negativos, o la expresión especial -l cadena, la cual significa la longitud de cadena. |
Completito, ¿verdad? Eso siempre es bueno. Veamos un ejemplo:
#! /bin/bash
if test $# -ne 2
then
echo Se necesitan 2 números
return 1
fi
if test $1 -lt $2
then
echo $1 es menor que $2
else
if test $1 -gt $2
then
echo $1 es mayor que $2
else
echo $1 es igual que $2
fi
fi
return 0
De ejecución:
matados2k@imperio:~/curso$ sh ejemplo44.sh 2 4
2 es menor que 4
matados2k@imperio:~/curso$ sh ejemplo44.sh 4 2
4 es mayor que 2
matados2k@imperio:~/curso$ sh ejemplo44.sh 2 2
2 es igual que 2
matados2k@imperio:~/curso$ sh ejemplo44.sh
Se necesitan 2 números
matados2k@imperio:~/curso$
En este caso vemos el uso de 'return' . Return finaliza la ejecución del script retornando un valor numérico que puede ser leído por otros scripts que lo llamen.
Despedida.
De momento, esta semana lo dejamos aquí y nos vemos la próxima semana con más estructuras.
Agradecimientos:
· Revisión del documento: karuchi (Carolina García).
Página oficial y dominio de mi propiedad http://matados2k.es
Matados'2k Usuario y moderador de foro.noticias3d.com
Matados'2k Usuario y moderador de www.sinuh.org
matados2k (arroba) gmail (punto) com
Este documento está sometido a la licencia de creative commons en su variante "Reconocimiento-NoComercial-SinObraDerivada 2.1 España". Es de agradecer que se comunique al autor el uso de este documento en otro medio y se debe incluir de forma obligatoria este recuadro y los agradecimientos.