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.