test
Linux · Terminal · solo documentación
Qué hace y para qué sirve
Evalúa una condición sobre ficheros, cadenas o números y devuelve un código de salida: 0 si es cierta y 1 si es falsa. [ ... ] es su forma equivalente.
Sintaxis
test expresión [ expresión ]
Opciones y parámetros
-f ficheroCierto si existe y es un fichero normal.
-d rutaCierto si existe y es un directorio.
-e rutaCierto si existe, sea del tipo que sea.
-s ficheroCierto si existe y no está vacío.
-z cadenaCierto si la cadena está vacía.
-n cadenaCierto si la cadena no está vacía.
a = b | a != bCompara cadenas: igual o distinta.
-eq -ne -lt -gt -le -geComparan números: igual, distinto, menor, mayor, menor o igual, mayor o igual.
Ejemplos de uso
test -f notas.txt && echo existeMuestra «existe» solo si notas.txt es un fichero.
[ -d /tmp ] && echo "es un directorio"Usa la forma con corchetes para comprobar un directorio.
test "$USER" = root || echo "no eres root"Avisa cuando el usuario actual no es root.
[ 5 -gt 3 ] && echo mayorCompara dos números; imprime «mayor» porque 5 es mayor que 3.
Notas y errores frecuentes
- En la forma con corchetes hay que dejar un espacio dentro de [ y ].
- Pon las variables entre comillas para que una variable vacía no rompa la expresión.
- No imprime nada: el resultado se lee en $? o con && y ||.