NOMBRE¶
expr - evalúa expresiones
SINOPSIS¶
expr expresion...
expr {--help,--version}
DESCRIPCIÓN¶
Esta documentación no será mantenida y puede ser inexacta o
incompleta. La documentación Texinfo es ahora la fuente autorizada.
Esta página de manual documenta la versión GNU de
expr.
expr evalúa una expresión y escribe el resultado en su salida
estándar. Cada elemento de la expresión debe ser un argumento
separado. Los Operandos puden ser números o bien cadenas. Las cadenas no
se entrecomillan para
expr, pero puede ser necesario entrecomillarlas
para protegerlas de la shell.
expr fuerza cualquier cosa que aparezca
en una posición de operando a un entero o a una cadena, dependiendo de la
operación que se le aplique.
Los operdores (en orden ascendiente de prioridad) son:
- |
- Toma su primer argumento si no es ni nulo ni 0, en otro
caso toma su segundo argumento. Esta es la operación `or'
habitual.
- &
- Toma su primer argumento, si el argumento no es ni nulo ni
0, y toma 0 en otro caso
- < <= =
== != >= >
- Compara sus argumentos y devuelve 1 si la relación es
verdadera o 0 en otro caso. ( == es un sinónimo de =.)
expr intenta forzar ambos argumentos a números y efectúa
una comparación numérica; si falla cuando intenta forzar
algún argumento entonces efectúa una comparación
lexicográfica.
- + -
- Realiza operaciones aritméticas. Se fuerza la
conversión de ambos argumentos a números; si esto no se puede
hacer se produce un error.
- * / %
- Realiza operaciones aritméticas (`%' es la
operación resto, como en C). Se fuerza la conversión de ambos
argumentos a números; si esto no se puede hacer se produce un
error.
- :
- Realiza la verificación de patrones. Sus argumentos se
fuerzan a cadenas y el segundo se considera una expresión regular,
con un `^' implícito añadido al principio. Entonces el primer
argumento se comprueba con la expresión regular. Si la
comprobación es correcta y parte de la cadena está comprendida
en `\(' y `\)', esa parte es el valor de la expresión :; en
otro caso se devuelve un entero que es el número de caracteres
verificados correctamente. Si la verificación falla, el operador
: devuelve la cadena nula si se usan `\(' y `\)' y 0 en otro caso.
Sólo se pueden usar los pares `\(' and `\)'.
- Además reconoce las siguientes palabras:
- match cadena expresión
- Una forma alternativa de efectuar comprobaciones de
cadenas. Esto es lo mismo que `` cadena :
expresión''.
- substr cadena posición longitud
- Devuelve la subcadena de cadena comenzando en
posición con longitud máxina longitud. Si
posición o longitud es negativo o no numérico,
devuelve una cadena nula.
- index cadena clase-de-caracteres
- Devuelve la primera posición de cadena donde
encuentra el primer carácter clase-de-caracteres. Si no
encuentra ningún carácter en string en
clase-de-caracteres, devuelve 0.
- length cadena
- Devuelve la longitud de cadena.
Los paréntesis se usan para agrupar de la forma habitual. Las palabras
reservadas no se pueden usar como cadenas.
OPCIONES¶
Cuando GNU
expr se llama con un único argumento, se reconocen las
siguientes opciones:
- --help
- Imprime un mensaje de uso en la salida estándar y
termina correctamente.
- --version
- Imprime información sobre la versión en la salida
estándar y termina correctamente.
EJEMPLOS¶
Para sumar 1 a una variable de shell
a:
- a=`expr $a + 1`
Lo siguiente se puede usar para imprimir la parte no directorio de un nombre de
fichero guardado en una variable
a (el valor de
a necesita no
contener `/'):
- expr $a : ´.*/\(.*\)´ ´|´ $a
Observe las comillas de los metacaracteres de shell.
expr devuelve el siguiente estado de fianlización:
0 si la expresión no es ni nula ni cero,
1 si la expresión es nula o 0,
2 para expresiones inválidas.