Estaciones de trabajo en línea OnWorks Linux y Windows

Logotipo

Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

Una versión más moderna de la prueba

Versiones recientes de golpear incluir un comando compuesto que actúa como un reemplazo mejorado para testea. Utiliza la siguiente sintaxis:

[[ expresión ]]

donde, como testea, expresión es una expresión que se evalúa como resultado verdadero o falso. los [[]] comando es muy similar a testea (admite todas sus expresiones), pero


agrega una nueva expresión de cadena importante:

string1 =~ expresiones regulares

que devuelve verdadero si string1 coincide con la expresión regular extendida expresiones regulares. Esto abre muchas posibilidades para realizar tareas como la validación de datos. En nuestro ejemplo anterior de las expresiones enteras, el script fallaría si la constante INT contenía cualquier cosa excepto un número entero. El script necesita una forma de verificar que la constante contiene un número entero. Utilizando [[]] con el =~ operador de expresión de cadena, podríamos mejorar el script de esta manera:



#! / Bin / bash


# test-integer2: evalúa el valor de un entero.


INT = -5


si [["$ INT" = ~ ^ -? [0-9] + $]]; luego

si [$ INT -eq 0]; luego echo "INT es cero".

más

si [$ INT -lt 0]; luego repita "INT es negativo".

más

echo "INT es positivo".

fi

si [$ ((INT% 2)) -eq 0]; luego echo "INT es par".

más

echo "INT es extraño".

fi

fi

más

echo "INT no es un número entero". > & 2 salida 1

fi

#! / Bin / bash


# test-integer2: evalúa el valor de un entero.


INT = -5


si [["$ INT" = ~ ^ -? [0-9] + $]]; luego

si [$ INT -eq 0]; luego echo "INT es cero".

más

si [$ INT -lt 0]; luego repita "INT es negativo".

más

echo "INT es positivo".

fi

si [$ ((INT% 2)) -eq 0]; luego echo "INT es par".

más

echo "INT es extraño".

fi

fi

más

echo "INT no es un número entero". > & 2 salida 1

fi


Al aplicar la expresión regular, podemos limitar el valor de INT a solo cadenas que comienzan con un signo menos opcional, seguido de uno o más números. Esta expresión también elimina la posibilidad de valores vacíos.

Otra característica agregada de [[]] es que el == El operador admite la coincidencia de patrones de la misma manera que lo hace la expansión de nombre de ruta. Por ejemplo:



[yo @ linuxbox ~] $ ARCHIVO = foo.bar

[yo @ linuxbox ~] $ ARCHIVO = foo.bar

Una versión más moderna de la prueba


[yo @ linuxbox ~] $ if [[$ FILE == foo. *]]; luego

> echo "$ FILE coincide con el patrón 'foo. *'"

> fi

foo.bar coincide con el patrón 'foo. *'

[yo @ linuxbox ~] $ if [[$ FILE == foo. *]]; luego

> echo "$ FILE coincide con el patrón 'foo. *'"

> fi

foo.bar coincide con el patrón 'foo. *'


Esto hace [[]] útil para evaluar archivos y rutas.


Top OS Cloud Computing en OnWorks: