El comando expr en Unix evalúa una expresión dada y muestra su salida correspondiente. Se utiliza para:
- Operaciones básicas como suma, resta, multiplicación, división y módulo en números enteros.
- Evaluación de expresiones regulares, operaciones de string como substring, longitud de strings, etc.
Sintaxis:
$expr expression
Opciones:
- Opción –version: Se utiliza para mostrar la información de la versión.
Sintaxis:
$expr --version
Ejemplo:
- Opción –ayuda: Se utiliza para mostrar el mensaje de ayuda y salir.
Sintaxis:
$expr --help
Ejemplo:
A continuación se muestran algunos ejemplos para demostrar el uso del comando «expr»:
1. Usando expr para operaciones aritméticas básicas:
Ejemplo: Adición
$expr 12 + 8
Ejemplo: Multiplicación
$expr 12 \* 2
Producción
Nota: El operador de multiplicación * se debe escapar cuando se usa en una expresión aritmética con expr .
2. Realizar operaciones en variables dentro de un script de shell
Ejemplo: sumar dos números en un script
echo "Enter two numbers" read x read y sum=`expr $x + $y` echo "Sum = $sum"
Producción:
Nota: expr es un programa externo utilizado por Bourne Shell. Utiliza el programa externo expr con la ayuda de backtick. El acento grave (`) en realidad se llama sustitución de comando.
3. Comparar dos expresiones
Ejemplo:
x=10 y=20 # matching numbers with '=' res=`expr $x = $y` echo $res # displays 1 when arg1 is less than arg2 res=`expr $x \< $y` echo $res # display 1 when arg1 is not equal to arg2 res=`expr $x \!= $y` echo $res
Producción:
Ejemplo: evaluación de expresiones booleanas
# OR operation $expr length "geekss" "<" 5 "|" 19 - 6 ">" 10
Producción:
# AND operation $expr length "geekss" "<" 5 "&" 19 - 6 ">" 10
Producción:
4. Para operaciones de strings
Ejemplo: encontrar la longitud de una string
x=geeks len=`expr length $x` echo $len
Producción:
Ejemplo: encontrar una substring de una string
x=geeks sub=`expr substr $x 2 3` #extract 3 characters starting from index 2 echo $sub
Producción:
Ejemplo: número coincidente de caracteres en dos strings
$ expr geeks : geek
Producción: