Pruebas de condición comunes para shell

Pruebas de condición comunes para shell

Aquí hay algunas tablas de prueba de condición de uso común en shells para su referencia y referencia

Diferentes tipos de pruebas

Hay tres tipos de pruebas que se pueden realizar en Bash:

  • Cadena de prueba
  • Número de prueba
  • Archivo de prueba

Cadena de prueba

condición significado
$ cadena1 = $ cadena2 Si las dos cadenas son iguales. Shell distingue entre mayúsculas y minúsculas, por lo que A y a no son lo mismo.
$ cadena1! = $ cadena2 Si las dos cadenas son diferentes.
-z $ cadena Si la cadena de caracteres está vacía. z es la primera letra de cero, que significa "cero" en inglés.
-n $ cadena Si la cadena no está vacía. n es la primera letra del inglés not, que significa "not" en inglés.

ejemplo:

#!/bin/bash

if [ -z $1 ]
then
    echo "No parameter"
else
    echo "There is at least one parameter"
fi

Cadena de prueba

condición significado
$ num1 -eq $ num2 Si los dos números son iguales. No es lo mismo que el símbolo (=) utilizado para determinar la cadena de caracteres. eq es la abreviatura de igual, que significa "igual" en inglés.
$ num1 -ne $ num2 Si los dos números son diferentes. ne es la abreviatura de no igual, que significa "no igual" en inglés.
$ num1 -lt $ num2 Si el número num1 es menor que num2. Es la abreviatura de lower than, que significa "menos que" en inglés.
$ num1 -le $ num2 Si el número num1 es menor o igual que num2. le es la abreviatura de lower o equal, que significa "menor o igual a" en inglés.
$ num1 -gt $ num2 Si el número num1 es mayor que num2. gt es la abreviatura de mayor que, que significa "mayor que" en inglés.
$ num1 -ge $ num2 Si el número num1 es mayor o igual que num2. Ge es la abreviatura de mayor o igual, que significa "mayor o igual que" en inglés.

ejemplo:

#!/bin/bash

if [ $1 -ge 10 ]
then
    echo "You have entered a number greater than 10 or equal to 10"
else
    echo "You have entered a number lower than 10"
fi

Archivo de prueba

condición significado
-e $ archivo Si el archivo existe. e es la primera letra de existir, que significa "existir".
-d $ archivo Si el archivo es un directorio. Como todo en Linux es un archivo, un directorio también es una especie de archivo. d es la primera letra del directorio, que significa "directorio".
-f $ archivo Si el archivo es un archivo. f es la primera letra del archivo, que significa "archivo".
-L $ archivo Si el archivo es un archivo de enlace simbólico. L es la primera letra del enlace, que significa "enlace".
-r $ archivo Si el archivo es legible. r es la primera letra de legible, que significa "legible".
-w $ archivo Si se puede escribir en el archivo. w es la primera letra de la escritura, que significa "escribible".
-x $ archivo Si el archivo es ejecutable. x es la primera letra del ejecutable, que significa "ejecutable".
$ archivo1 -nt $ archivo2 Si el archivo file1 es más reciente que file2. nt es la abreviatura de más nuevo que, que significa "más nuevo".
$ archivo1 -desde $ archivo2 Si el archivo file1 es más antiguo que file2. ot es la abreviatura de mayor que, que significa "mayor".

ejemplo:

#!/bin/bash

read -p 'Enter a directory : ' file

if [ -d $file ]
then
    echo "$file is a directory"
else
    echo "$file is not a directory"
fi

———————————————————————————————————————————————
Referencia: Enciclopedia de programación de scripts de shell y línea de comandos de Linux / 43 Cuando se manifiesta la condición, Shell no está satisfecho

Supongo que te gusta

Origin blog.csdn.net/rjszz1314/article/details/104487269
Recomendado
Clasificación