Índice

Sustitución de expresiones aritméticas

ksh  

bash  

Los caracteres de sustitución de comandos se han presentado en la sección Sustitución de comandos, de este capítulo. De igual modo, existen unos caracteres especiales de shell que permiten sustituir una expresión aritmética por su resultado.

Sintaxis

comando argumento1 $((expresión-aritmética)) ... argumenton

Ejemplo

Recordatorio de la sustitución de comandos:

$ echo "Número de usuarios conectados: `who | wc -l`" 
Número de usuarios conectados:        5

Escritura equivalente:

$ echo "Número de usuarios conectados: $(who | wc -l)" 
Número de usuarios conectados:        5

El comando (( )) no muestra nada:

$ x=2 
$ ((x+1))            # La expresión vale: 3 
$ ((x=x+1))          # Se le asigna a x el valor 3 y  
la expresión vale 3 
$ echo $x 
3

Por lo tanto, el comando (( )) no se sustituye por vacío:

$ echo "Después del incremento, x vale: `((x=x+1))`" 
Después del incremento, x vale:

Para sustituir la expresión por su valor, hay que usar los caracteres especiales del shell $(( )).

$ x=2 
$ echo "Después del incremento, x vale: $((x=x+1))" 
Después del incremento, x vale: 3 
$ echo $x 
3

No confundir (( )) y $(( )). (( )) es un comando interno de shell ...