expr es una utilidad de línea de comandos en Unix y sistemas operativos similares a Unix que evalúa una expresión y genera el valor correspondiente. Apareció por primera vez en Unix v7 . El comando expr también se ha adaptado al sistema operativo IBM i . [1]
Autor (es) original (es) | Dick Haight ( Laboratorios Bell de AT&T ) |
---|---|
Desarrollador (es) | Varios desarrolladores comerciales y de código abierto |
Versión inicial | 1979 |
Sistema operativo | Unix , similar a Unix , IBM i |
Plataforma | Multiplataforma |
Tipo | Mando |
Descripción general
expr evalúa expresiones enteras o de cadena , incluidas las expresiones regulares de coincidencia de patrones . Cada símbolo (operador, valor, etc.) de la expresión se debe proporcionar como un parámetro separado. La mayor parte del desafío que se plantea al escribir expresiones es evitar que el shell de la línea de comandos que invoca actúe sobre los caracteres destinados a que expr los procese.
Sintaxis
Sintaxis: expresión expr
Los operadores disponibles
- para enteros: suma, resta, multiplicación, división y módulo
- para cadenas: busque expresiones regulares, busque un conjunto de caracteres en una cadena; en algunas versiones: busque subcadena, longitud de la cadena
- ya sea para: comparación (igual, no igual, menor que, etc.)
Ejemplo
El siguiente es un ejemplo que involucra expresiones booleanas :
longitud expr "abcdef" "<" 5 "|" 15 - 4 ">" 8
Este ejemplo genera "1". Esto se debe a que la longitud "abcdef" es 6, que no es menor que 5 (por lo que el lado izquierdo de | devuelve cero). Pero 15 menos 4 es 11 y es mayor que 8, por lo que el lado derecho es verdadero, lo que hace que o sea verdadero, por lo que 1 es el resultado. El estado de salida del programa es cero para este ejemplo.
Para aritmética pura, a menudo es más conveniente usar bc . Por ejemplo:
echo "3 * 4 + 14/2" | antes de Cristo
ya que acepta la expresión como un solo argumento.
Para la programación de shell portátil, no se recomienda el uso de los comandos length y substr.
Ver también
Referencias
- ^ IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . Consultado el 5 de septiembre de 2020 .
enlaces externos
- La especificación única de UNIX , Edición 7 de The Open Group : evaluar argumentos como una expresión - Referencia de comandos y utilidades,
- Expr invocación en GNU coreutils manual