Descripción general
El comando expr se utiliza para realizar operaciones aritméticas, relacionales, lógicas y de cadenas. Cada argumento se trata como un token separado, por lo que se requiere un espacio entre los operadores y los operandos.
Características principales
- Operaciones aritméticas (suma, resta, multiplicación, división, módulo)
- Operaciones de cadena (longitud, subcadena, índice, coincidencia de expresiones regulares)
- Operaciones relacionales (igualdad, desigualdad, mayor que, menor que)
- Operaciones lógicas (AND, OR)
Operadores principales
El comando expr utiliza varios operadores para evaluar expresiones. Cada operador debe tratarse como un argumento separado.
Operadores aritméticos
Operadores relacionales
Operadores lógicos
Operadores de cadena
Comando generado:
Combina los comandos.
Descripción:
`expr` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Operación aritmética básica
expr 10 + 5
Suma dos números.
Operación de multiplicación con variables
num=20
expr $num \* 3
Realiza una multiplicación utilizando el valor de una variable. El operador de multiplicación (*) tiene un significado especial en el shell, por lo que debe escaparse.
Obtener la longitud de una cadena
expr length "Hello World"
Devuelve la longitud de una cadena dada.
Extraer una subcadena
expr substr "example" 3 4
Extrae 4 caracteres de la cadena 'example' comenzando desde la tercera posición.
Coincidencia y extracción de expresiones regulares
expr "filename.tar.gz" : ".*\.\(tar\.gz\)"
Extrae la parte coincidente de una cadena con una expresión regular. El contenido entre paréntesis se devuelve como subcoincidencia.
Operación lógica AND
expr 5 \& 0
Devuelve el primer operando si ambos operandos no son cero. El ampersand (&) tiene un significado especial en el shell (ejecución en segundo plano), por lo que debe escaparse.
Consejos y precauciones
Puntos a tener en cuenta y consejos útiles al usar expr.
Precauciones principales
- **Espacios obligatorios**: Siempre debe haber un espacio entre los operadores y los operandos.
- **Escapado**: Los caracteres que tienen un significado especial en el shell (por ejemplo, `*`, `(`, `)`, `&`, `|`, `<`) deben escaparse con una barra invertida (`\`) o entrecomillarse.
- **Operaciones enteras**: `expr` soporta principalmente operaciones con números enteros. Si necesita operaciones con punto flotante, debe usar otras herramientas como `bc`.
- **Almacenamiento de resultados**: El resultado de `expr` se muestra en la salida estándar. Para guardarlo en una variable del shell, utilice la sustitución de comandos (por ejemplo, `resultado=$(expr 10 + 5)` o `resultado=`expr 10 + 5``).