Declaración de prueba condicional del script de Shell, si, caso

1. Prueba de condición

1.1 comando de prueba

Pruebe si una expresión específica es verdadera. Cuando la condición es verdadera, el valor de retorno de la declaración de prueba es 0; de lo contrario, son otros valores.

格式:
test  条件表达式
或【条件表达式】(条件表达式的两边都需要有空格,且此方法更为常用)

1.2 Prueba de archivo

1.2.1 Opciones comunes para pruebas de archivos

Operadores de prueba comunes significado
-d prueba de directorio
-mi Prueba de la existencia de un directorio o archivo.
-F prueba de archivo
-r Pruebe si el usuario actual tiene permiso para leer
-w Pruebe si el usuario actual tiene permiso para escribir
-X Pruebe si el usuario actual tiene permiso para ejecutar
-l Pruebe si es un archivo de enlace suave
-Nuevo Testamento Determinar si el archivo A es más nuevo que el archivo B
-Antiguo Testamento Determinar si el archivo A es anterior al archivo B
-ef Determinar si dos archivos son el mismo archivo

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

1.3 Comparación numérica

格式:
【整数1  操作符  整数2】

Operadores de prueba comunes

operador significado
-eq igual
- es no igual a
-lt xiaoyu
-gt más que el
- el Menos que o igual a
-ge Mayor qué o igual a

Consulte si la cantidad de archivos en el directorio actual es mayor que 10 y, de ser así, solicite

[root@localhost ~]#ls |wc -l
15
[root@localhost ~]#test `ls |wc -l` -gt 10 && echo 文件数大于10
文件数大于10

Compruebe si la memoria del sistema es inferior a 1024 M; si es inferior, solicite

[root@localhost ~]#free -m
              total        used        free      shared  buff/cache   available
Mem:           1758         359         790          17         608        1161
Swap:          3839           0        3839
[root@localhost ~]#free -m|grep "Mem"
Mem:           1758         359         791          17         608        1161
[root@localhost ~]#free -m|grep "Mem"|awk '{print $4}'
790
[root@localhost ~]#free=`free -m|grep "Mem"|awk '{print $4}'`
[root@localhost ~]#echo $free 
790
[root@localhost ~]#test `echo $free` -lt 1024 && echo 内存不足1024M
内存不足1024M
[root@localhost ~]#

1.4 Comparación de cadenas

 格式:
【字符串1=字符串2】   # 判断是否相等
【字符串1!= 字符串2】   # 判断是否不等
【-z  字符串】                     # 判断字符串是否为空

operador

operador significado
= el contenido de la cadena es igual
!= El contenido de la cadena es diferente. signo significa lo contrario
-z la cadena está vacía
[root@localhost ~]#echo $LANG
zh_CN.UTF-8
[root@localhost ~]#test `echo $LANG`="us.en"&&echo 当前系统语言不是us.en,当前系统语言为`echo $LANG`
当前系统语言不是us.en,当前系统语言为zh_CN.UTF-8
[root@localhost ~]#

1.5 Prueba lógica

格式:
【表达式1】操作符 【表达式2】
命令1 操作符 命令2

operador:

-a或&& Y lógico, y el significado.
-o o ll lógico o, o significado
lógico no

Declaración dos.if

2.1 Estructura de sucursal única

格式
if  【条件判断式】;than
       当条件判断成立时,执行一条或多条命令
fi

Si solo hay un juicio por realizar, entonces podemos usar una declaración if de una sola rama, que solo se ejecutará cuando la condición sea verdadera; de lo contrario, no se ejecutará nada.
inserte la descripción de la imagen aquí

2.3 Multi-rama

if【条件判断式】;then
    当条件判断成立时,可以执行一条或多条命令
 elif【条件判断式二】;then
     当条件判断成立时,可以执行一条或多条命令
  else
       当上面条件判断都不成立时,可以执行一条或多条命令
   fi

Si es necesario juzgar los datos de manera diferente, puede usar la estructura de múltiples ramas para anidar
inserte la descripción de la imagen aquí

Declaración de tres casos

格式;
case 变量名称 in
模式1)
   命令序列
   ;;
模式2)
     程序段
     ;;
        *)
        不包含第一个变量内容与第一个变量内容的其他程序执行段
        默认程序段
        ;;

esac

punto importante:

  • Una línea de caso debe comenzar con la palabra "in" y cada patrón debe terminar con un único paréntesis de cierre.
  • Un punto y coma doble ";;" indica el final de una secuencia de comando
  • En la cadena de patrón, puede usar corchetes para representar un rango continuo, como "[0-9]"; también puede usar | para representar o, como a|b
  • El último) significa el modo predeterminado, donde equivale a un comodín
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/fyb012811/article/details/132228530
Recomendado
Clasificación