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 fichero

    Cierto si existe y es un fichero normal.

  • -d ruta

    Cierto si existe y es un directorio.

  • -e ruta

    Cierto si existe, sea del tipo que sea.

  • -s fichero

    Cierto si existe y no está vacío.

  • -z cadena

    Cierto si la cadena está vacía.

  • -n cadena

    Cierto si la cadena no está vacía.

  • a = b | a != b

    Compara cadenas: igual o distinta.

  • -eq -ne -lt -gt -le -ge

    Comparan números: igual, distinto, menor, mayor, menor o igual, mayor o igual.

Ejemplos de uso

  • test -f notas.txt && echo existe

    Muestra «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 mayor

    Compara 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 ||.

Comandos relacionados