expr - evalúa expresiones
expr expresion...
expr {--help,--version}
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.
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.
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.