viernes, 3 de julio de 2015

Expansión aritmética

El shell permite realizar aritmética mediante la expansión. Esto nos permite usar el prompt del shell como una calculadora:

[me@linuxbox ~]$ echo $((2 + 2))
4

La expansión aritmética usa la forma:

$((expresión))

donde expresión es una expresión aritmética consistente en valores y operadores aritméticos.

La expansión aritmética sólo soporta enteros (números enteros sin decimales), pero puede realizar un buen número de operaciones diferentes. Aquí hay unos pocos de los operadores soportados:

Tabla 7-1: Operadores aritméticos
Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División (pero recuerda, como la expansión sólo soporta enteros, los resultados serán enteros.)
% Módulo, que simplemente significa, “resto”
** Potencia

Los espacios no son significativos en las expresiones aritméticas y las expresiones pueden ser anidadas. Por ejemplo, para multiplicar 5 al cuadrado por 3:

[me@linuxbox ~]$ echo $(($((5**2)) * 3))
75

Los paréntesis sencillos pueden ser usados para agrupar subexpresiones. Con esta técnica, podemos reescribir el ejemplo anterior y obtener el mismo resultado usando una única expansión en lugar de dos:

[me@linuxbox ~]$ echo $(((5**2) * 3))
75

Aquí tenemos un ejemplo usando los operadores división y resto. Fíjate el efecto de la división con enteros:

[me@linuxbox ~]$ echo Five divided by two equals $((5/2))
Five divided by two equals 2
[me@linuxbox ~]$ echo with $((5%2)) left over.
with 1 left over.

La expansión aritmética será tratada con más detalle en el Capítulo 34.

No hay comentarios:

Publicar un comentario