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" ]