Inicio > Entorno y utilidades > test

test: Evaluación de expresiones condicionales

El comando test se utiliza para construir sentencias condicionales en scripts de shell. Evalúa diversas expresiones condicionales, como la verificación del tipo de archivo o la comparación de valores de cadenas y números, devolviendo verdadero (0) o falso (1). Estos valores de retorno se utilizan en estructuras de control como las sentencias `if`.

Descripción general

El comando test evalúa la expresión dada y devuelve un estado de salida 0 si es verdadero y 1 si es falso. Se utiliza principalmente para la ejecución condicional en estructuras como las sentencias `if` y `while` en scripts de shell. El comando `[` es otra forma del comando `test`, y `[[` proporciona funcionalidades extendidas en Bash/Ksh/Zsh.

Funciones principales

  • Verificación de tipos y atributos de archivo
  • Comparación de valores de cadena
  • Comparación de valores enteros
  • Operaciones lógicas (AND, OR, NOT)

Opciones principales

El comando test utiliza varios operadores unarios y binarios para evaluar expresiones condicionales.

Verificación de atributos de archivo

Comparación de cadenas

Comparación de enteros

Operadores lógicos

Comando generado:

Combina los comandos.

Descripción:

`test` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Ejemplos de evaluación de expresiones condicionales utilizando el comando test.

Verificar la existencia de un archivo

if test -e /etc/passwd; then echo "El archivo /etc/passwd existe."; fi

Verifica si el archivo `/etc/passwd` existe.

Verificar si es un directorio

if test -d /tmp; then echo "/tmp es un directorio."; fi

Verifica si `/tmp` es un directorio.

Comparación de cadenas

MY_VAR="hello"
if test "$MY_VAR" = "hello"; then echo "El valor de la variable es hello."; fi

Verifica si el valor de la variable `MY_VAR` es igual a 'hello'.

Comparación de enteros

COUNT=15
if test "$COUNT" -gt 10; then echo "COUNT es mayor que 10."; fi

Verifica si el valor de la variable `COUNT` es mayor que 10.

Operación lógica AND

touch file.txt
if test -f file.txt -a -s file.txt; then echo "file.txt existe y no está vacío."; fi
rm file.txt

Verifica si `file.txt` existe y no está vacío.

Usar `[` en lugar de test

if [ -f /etc/hosts ]; then echo "El archivo /etc/hosts existe."; fi

El comando `test` puede ser reemplazado por `[`. Debe cerrarse con `]`.

Consejos y precauciones

Consejos útiles y puntos a tener en cuenta al usar el comando test.

Consejos principales

  • El comando `[` es idéntico al comando `test` y debe cerrarse con `]`. `[` y `]` se tratan como argumentos separados, por lo que los espacios son obligatorios.
  • El comando `[[` solo es compatible con Bash, Ksh y Zsh, y ofrece funcionalidades más potentes (expresiones regulares, manejo de espacios, etc.). Dentro de `[[`, no es necesario entrecomillar las variables para que sean seguras.
  • Al usar variables, siempre es seguro entrecomillarlas (por ejemplo, `test "$VAR" = "value"`). Esto previene errores que pueden ocurrir cuando una variable está vacía o contiene espacios.
  • Para la comparación de enteros, use `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le`, y para la comparación de cadenas, use `=`, `!=`, `-z`, `-n`. Usar los incorrectos puede llevar a resultados inesperados.


Comandos de la misma categoría