Comando expr de Linux

comando expr

En Tipo Unix sistemas operativos, el expr El comando evalúa los argumentos como una expresión.

Esta página cubre el GNU / Linux versión de expr .



Sintaxis

|_+_| |_+_|

Opciones

--ayuda Muestre un mensaje de ayuda y salga.
--versión Muestra la información de la versión y sale.

Expresiones

expr imprime el valor de EXPRESIÓN a salida estándar. Una línea en blanco debajo separa los grupos de precedencia crecientes.

cómo obtener el enlace de youtube

EXPRESIÓN tal vez:

ARG1 | ARG2 ARG1 si no es nulo ni 0, de lo contrario ARG2 .
ARG1 & ARG2 ARG1 si ninguno de los argumentos es nulo o 0, de lo contrario 0.
ARG1 < ARG2 ARG1 es menos que ARG2 .
ARG1 <= ARG2 ARG1 es menor o igual que ARG2 .
ARG1 = ARG2 ARG1 es igual a ARG2 .
ARG1 != ARG2 ARG1 es desigual a ARG2 .
ARG1 >= ARG2 ARG1 es mayor o igual a ARG2 .
ARG1 > ARG2 ARG1 es mayor que ARG2 .
ARG1 + ARG2 suma aritmética de ARG1 y ARG2 .
ARG1 - ARG2 diferencia aritmética de ARG1 y ARG2 .
ARG1 * ARG2 producto aritmético de ARG1 y ARG2 .
ARG1 / ARG2 cociente aritmético de ARG1 dividido por ARG2 .
ARG1 % ARG2 resto aritmético de ARG1 dividido por ARG2 .
CUERDA : REGEXP coincidencia de patrón anclado de expresión regular REGEXP en CUERDA .
partido CUERDA REGEXP igual que CUERDA : REGEXP .
substr CUERDA POS LARGO subcadena de CUERDA , POS contados desde 1.
índice CUERDA CHARS índice en CUERDA donde cualquiera CHARS se encuentra, o 0 .
largo CUERDA longitud de CUERDA .
+ SIMBÓLICO interpretar SIMBÓLICO como una cadena, incluso si es una palabra clave como ' partido 'o un operador como' / '.
( EXPRESIÓN ) valor de EXPRESIÓN .

Notas sobre el uso

  • Tenga en cuenta que muchos operadores deben ser escapados o citados para que los shells los interpreten correctamente.
  • Las comparaciones son aritméticas si ambos ARG son números; de lo contrario, las comparaciones son lexicográficas.
  • Las coincidencias de patrones devuelven la cadena coincidente entre ( y ) o nulo; Si ( y ) no se utilizan, devuelven el número de caracteres coincidentes o 0.
  • El estado de salida es 0 si EXPRESSION no es nulo ni 0, 1 si EXPRESSION es nulo o 0, 2 si EXPRESSION es sintácticamente inválida, y 3 si ocurrió un error.

Ejemplos de

|_+_|

Realiza una coincidencia de expresión regular. La expresión regular después de los dos puntos se compara con el texto antes de los dos puntos. La salida devuelta es el número de caracteres que coincidieron. Aquí, la expresión regular '.*' representa 'cualquier número de cualquier carácter', por lo tanto, el resultado es:



|_+_| |_+_|

Devuelve el número de caracteres de la expresión regular después de los dos puntos que aparecen en el texto antes de los dos puntos. Aquí, la expresión regular 'Texas' representa 'exactamente los caracteres consecutivos t , es , y x ', por lo que la salida sería:

|_+_| |_+_|

Aquí, la expresión regular '(.*)' representa 'El texto real (lo que aparezca entre paréntesis, que se escapa con barras invertidas) que coincide con el patrón .* , que en sí mismo representa cualquier número de cualquier carácter '. Coincidido con el texto texto , esto devuelve la cadena exactamente:

|_+_| |_+_|

Devoluciones 1 (verdadero) si las expresiones son equivalentes, o 0 (falso) si no lo son. Aquí, los valores 5 y 5 son iguales, y por lo tanto equivalente , por lo que la salida será:



|_+_| |_+_|

Aquí, se comparan dos cadenas para determinar la equivalencia. Si las cadenas coinciden exactamente, carácter por carácter, el resultado será 1 (cierto). De lo contrario, el resultado será 0 . Aquí, el resultado es:

|_+_| |_+_|

Aquí, el resultado es 1 (cierto) si 5 es menos que 10 , de lo contrario el resultado es 0 . El símbolo 'menor que' (' < ') está precedido por una barra invertida (' ') para protegerlo del shell, que de otro modo lo interpretaría como un operador de redirección. En este ejemplo, 5 es no mas grande que 10 , entonces la salida es:

|_+_| |_+_|

Así como el = pruebas de operador para la equivalencia, el != pruebas de operador para no equivalencia. Si los dos valores que se están probando no son equivalentes, el resultado es verdadero ( 1 ), de lo contrario, el resultado es falso ( 0 ). 5 es equivalente a 5 , entonces el resultado es falso:

|_+_| |_+_|

'Equivalencia' no es lo mismo que 'igualdad'. 5 es un número, y '5' es una cadena, por lo que técnicamente no son 'iguales', pero expr los considera equivalente porque lee la cadena por su contenido, ve que es un número y usa el valor de ese número en la comparación. Entonces el valor 5 es equivalente a una cadena que contiene el número '5' . Por tanto, la respuesta aquí es falsa; ellos son no no -equivalente:

|_+_|

El siguiente ejemplo mostrará, en una serie de comandos, cómo expr se puede utilizar para incrementar el valor de una variable.

Si definimos una variable llamada contar , poniéndolo a cero:

|_+_|

... podemos generar el valor de esa variable con el echo mando:

|_+_| |_+_|

... ahora podemos incrementarlo configurándolo en el valor de un expr evaluación, que devuelve el valor de la variable más uno:

|_+_|

... y podemos comprobar el valor actualizado con otro echo :

|_+_| |_+_|

nombre de base - Elimine la información del directorio y los sufijos de los nombres de archivo.
ed - Un sencillo editor de texto.
sh - El intérprete de comandos del shell Bourne.