El comando de prueba se puede usar en la línea de comandos de Linux para comparar un elemento con otro, pero se usa más comúnmente en los scripts de shell de BASH como parte de las declaraciones condicionales que controlan la lógica y el flujo del programa.
Un ejemplo básico
Puede probar estos comandos simplemente abriendo una ventana de terminal.
prueba 1 -eq 2 && eco "sí" || eco "no"
El comando anterior se puede desglosar de la siguiente manera: En esencia, el comando está comparando 1 a 2 y si coinciden, se ejecuta la instrucción echo "sí" que muestra "sí" y, si no coinciden, se ejecuta la instrucción echo "no" que muestra "no". Si está comparando elementos que se analizan como números, puede usar los siguientes operadores de comparación: Ejemplos prueba 1 -eq 2 && eco "sí" || eco "no"
(muestra "no" en la pantalla porque 1 no es igual a 2) prueba 1 -ge 2 && eco "sí" || eco "no"
(muestra "no" en la pantalla porque 1 no es mayor o igual a 2) prueba 1 -gt 2 && eco "sí" || eco "no"
(muestra "no" en la pantalla porque 1 no es mayor que 2) prueba 1 -le 2 && eco "sí" || eco "no"
(muestra "sí" en la pantalla porque 1 es menor o igual a 2) prueba 1 -lt 2 && eco "sí" || eco "no"
(muestra "sí" en la pantalla porque 1 es menor o igual a 2) prueba 1 -ne 2 && eco "sí" || eco "no"
(muestra "sí" en la pantalla porque 1 no es igual a 2) Si está comparando elementos que se analizan como cadenas, puede usar los siguientes operadores de comparación: Ejemplos prueba "string1" = "string2" && echo "yes" || eco "no"
(muestra "no" en la pantalla porque "string1" no es igual a "string2") prueba "string1"! = "string2" && echo "yes" || eco "no"
(muestra "sí" en la pantalla porque "string1" no es igual a "string2") prueba -n "string1" && echo "yes" || eco "no"
(muestra "sí" en la pantalla porque "string1" tiene una longitud de cadena mayor que cero) prueba -z "string1" && eco "sí" || eco "no"
(muestra "no" en la pantalla porque "string1" tiene una longitud de cadena mayor que cero) Si está comparando archivos, puede usar los siguientes operadores de comparación: Ejemplos prueba / ruta / a / archivo1 -nt / ruta / a / archivo2 && eco "sí"
(Si file1 es más reciente que file2, se mostrará la palabra "yes") prueba -e / ruta / a / archivo1 && eco "sí"
(Si existe el archivo 1, se mostrará la palabra "sí") prueba -O / ruta / a / archivo1 && eco "sí"
(Si posee el archivo 1, se muestra la palabra "sí") Terminología Hasta ahora, todo ha estado comparando una cosa con otra, pero ¿y si quieres comparar dos condiciones? Por ejemplo, si un animal tiene 4 patas y dice "muuuy", es probable que sea una vaca. El simple hecho de verificar las 4 patas no garantiza que tengas una vaca, sino que comprobar el sonido que produce seguramente. Para probar ambas condiciones a la vez usa la siguiente declaración: prueba 4 -eq 4 -a "moo" = "moo" && echo "es una vaca" || echo "no es una vaca"
La parte clave aquí es la -a que significa y . Existe una forma mejor y más comúnmente utilizada de realizar la misma prueba y es la siguiente: prueba 4 -eq 4 && prueba "moo" = "moo" && echo "es una vaca" || echo "no es una vaca"
Otra prueba que podría querer hacer es comparar dos afirmaciones y, si cualquiera de las dos es verdadera, genera una cadena. Por ejemplo, si desea comprobar que existe un archivo llamado "file1.txt" o un archivo llamado "file1.doc", puede usar el siguiente comando: prueba -e archivo1.txt -o -e archivo1.doc && echo "archivo1 existe" || echo "archivo1 no existe"
La parte clave aquí es la -o que significa o . Existe una forma mejor y más comúnmente utilizada de realizar la misma prueba y es la siguiente: prueba -e file1.txt || prueba -e archivo1.doc && echo "archivo1 existe" || echo "archivo1 no existe" No es necesario utilizar la prueba de palabras para realizar la comparación. Todo lo que tienes que hacer es encerrar la declaración entre corchetes de la siguiente manera: -e file1.txt && echo "archivo1 existe" || echo "archivo1 no existe"
El y básicamente significa lo mismo que prueba. Ahora que sabe esto, puede mejorar la comparación de múltiples condiciones de la siguiente manera: 4 -eq 4 && "moo" = "moo" && echo "es una vaca" || echo "no es una vaca"-e file1.txt || -e archivo1.doc && echo "archivo1 existe" || echo "archivo1 no existe" El comando de prueba es más útil en los scripts porque puede probar el valor de una variable contra otra y controlar el flujo del programa. En la línea de comando estándar, puede usarlo para probar si un archivo existe o no.
Comparando numeros
Comparando texto
Comparando archivos
Comparando múltiples condiciones
Eliminar la palabra clave de prueba
Resumen