Red de conocimiento informático - Problemas con los teléfonos móviles - Las diferencias entre varios juicios condicionales en la función shell if

Las diferencias entre varios juicios condicionales en la función shell if

1. Comparación de enteros:

[plain] vista copia simple

-eq es igual a, como por ejemplo: if [ "$a" -eq " $b" ] o si [ $a -eq $b ]

-ne no es igual a, como por ejemplo: if [ "$a" -ne "$b" ]

-gt es mayor que, como por ejemplo: if [ "$a" -gt "$b" ]

-ge mayor o igual que, como por ejemplo: if [ "$a" -ge " $b" ]

-lt Menor que, como por ejemplo: if [ "$a" -lt "$b" ]

-le Menor o igual que, como por ejemplo: if [ "$a" -le "$b" ]

== Igual, como por ejemplo: if if (("$a" == "$b"))

lt; Menor que (requiere corchetes dobles), como: (("$a" lt; " $b"))

lt = menor o igual que (requiere corchetes dobles), como : (("$a" lt; = "$b"))

gt; mayor que (requiere corchetes dobles), como por ejemplo: (("$a" gt; "$b"))

gt; = mayor o igual que (requiere corchetes dobles), como: (("$a" gt; = "$b"))

La nota especial es que no es necesario dejar un espacio entre el carácter (()) y los corchetes, pero [[ ]] y [] son ​​más estrictos y requieren un espacio.

2. Comparación de cadenas, las fórmulas -eq, -nq y otras anteriores solo se aplican a la comparación numérica, no a la comparación de caracteres

[plain] vista simple

= es igual, como por ejemplo: if [ "$a" = "$b" ]

== es igual, como por ejemplo: if [ "$a" == "$b" ], y = etc. Precio

[[ $a == z* ]] # Si $a comienza con "z" (coincidencia de patrón), entonces será verdadero

[[ $a = = "z *" ]] # Si $a es igual a z* (coincidencia de caracteres), entonces el resultado es verdadero

[ $a == z* ] # Se producirá agrupación de archivos y división de palabras

[ "$a" == "z*" ] # Si $a es igual a z* (coincidencia de caracteres), entonces el resultado es verdadero

3. /p>

[[ ]], [] tiene requisitos estrictos y sensibles para las variables entre paréntesis, pero (()) es relativamente flexible

[plain] ver copia simple

1 si [[ $a == $b ]] y si [[ $a == $b ]] son ​​equivalentes

Pero si [[ $a == $b ]] y si [ [ a == b ]] No equivalente

2 si (($a == $b)) y if (($a = $b)) son equivalentes

if. (($ a == $b)) y if ((a == b)) son equivalentes

4 Juicio de múltiples condiciones:

amp;amp; son aplicables a [[ ]] y (), -a y -o son aplicables a []

Por ejemplo:

[plain] ver copia simple

if ((i == 1)) es equivalente a if [ "$i" == 1 ]

if [[ "$i" = 1 amp; "$j" = 2 ] ] y if (( i = 1)) || ((j = 2))

5. Otras explicaciones:

!= no es igual, como por ejemplo: if [ " $a" != "$ b" ]

Este operador utilizará la coincidencia de patrones en la estructura [[]].

lt; menor que, en orden alfabético ASCII. Por ejemplo :

if [[ "$a" lt; "$b" ]]

if [ "$a" \lt "$b" ]

Nota: en la estructura [], "lt;" debe tener carácter de escape

gt; es mayor que, en orden alfabético ASCII. a" gt; "$b" ] ]

if [ "$a" \gt; "$b" ]