English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Comando test de Shell

El comando test en Shell se utiliza para verificar si una condición se cumple, puede realizar pruebas de número, carácter y archivo en三个方面.

Prueba numérica

Parámetro Descripción
-eq Igual es verdadero
-ne Diferente es verdadero
-gt Mayor es verdadero
-ge Mayor o igual es verdadero
-lt Menor es verdadero
-le Menor o igual es verdadero
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo 'Dos números son iguales!'
else
    echo 'Dos números son diferentes!'
fi

Resultados de salida:

¡Dos números son iguales!

Los [] en el código realizan operaciones aritméticas básicas, como:

#!/bin/bash
a=5
b=6
result=$[a+b] # Nota: No puede haber espacios alrededor del signo igual
echo "El resultado es: $result"

El resultado es:

El resultado es: 11

Prueba de cadena

Parámetro Descripción
= Igual es verdadero
!== Diferente es verdadero
-Cadena z La longitud de la cadena es cero es verdadero
-n Cadena Es verdadero si la longitud de la cadena no es cero
num1="ru1noob"
num2="w3codebox"
if test $num1 = $num2
then
    echo '¡Las dos cadenas son iguales!"
else
    echo '¡Las dos cadenas no son iguales!"
fi

Resultados de salida:

¡Las dos cadenas no son iguales!

Pruebas de archivos

Parámetro Descripción
-e Nombre de archivo Es verdadero si el archivo existe
-r Nombre de archivo Es verdadero si el archivo existe y es readable
-w Nombre de archivo Es verdadero si el archivo existe y es writable
-x Nombre de archivo Es verdadero si el archivo existe y es ejecutable
-s Nombre de archivo Es verdadero si el archivo existe y tiene al menos un carácter
-d Nombre de archivo Es verdadero si el archivo existe y es un directorio
-f Nombre de archivo Es verdadero si el archivo existe y es un archivo normal
-c Nombre de archivo Es verdadero si el archivo existe y es un archivo especial de carácter
-b Nombre de archivo Es verdadero si el archivo existe y es un archivo especial de bloque
cd /bin
if test -e ./bash
then
    echo '¡El archivo ya existe!"
else
    echo '¡El archivo no existe!"
fi

Resultados de salida:

¡El archivo ya existe!

Además, Shell también proporciona con( -a ) o ( -o )、no( ! )tres operadores lógicos se utilizan para conectar condiciones de prueba, su prioridad es: ! la más alta, -a el siguiente, -o el más bajo. Por ejemplo:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo '¡Al menos un archivo existe!)
else
    echo 'No existen dos archivos'
fi

Resultados de salida:

¡Al menos un archivo existe!