Sustitución de comandos
La sustitución de comandos consiste en recuperar la salida de un comando en la línea de comandos. Las salidas de comandos pueden utilizarse para la asignación de una variable o como argumento de otro comando.
El shell efectúa las sustituciones de comandos antes de interpretar la línea de comandos en su totalidad.
La sintaxis clásica de una sustitución de comandos utiliza el apóstrofe invertido (o acento abierto, o "back quote") obtenido con la tecla [`]+[espacio] en un teclado español:
[javier]$ whoami
javier
[javier]$ echo "mi login es 'whoami'"
mi login es javier
[javier]$ milogin='whoami'
[javier]$ echo "mi login es $milogin"
mi login es javier
La ventaja de asignar la salida de un comando a una variable radica en poder reutilizar varias veces el resultado evaluando una sola vez el comando.
La segunda sintaxis admitida para la sustitución de comandos es $(). La ventaja de esta sintaxis reside en poder anidar las sustituciones de comandos:
[javier]$ echo 'contenido de mi directorio: $(ls /home/$(whoami))'
contenido de mi directorio: blanco
azul
amarillo
marrón
rojo
verde
violeta