Ya hemos visto cómo hacer funciones en shell script, cómo enviarle parámetros y ahora veremos cómo recoger en una variable el resultado del proceso de una función.
Veamos el ejemplo de los artículos anteriores modificado para recibir el resultado de la función en una variable:
#!/bin/bash
function saludo()
{
echo "Soy una función que saluda: Hola, "$1
}
textosaludo=$(saludo Pepe)
echo $textosalud
Como vemos, al igual que una función procesa los parámetros como un script ($1 es el primer parámetro recibido), a la hora de invocar la función y recibir el resultado en una variable también la instrucción es igual que si fuera un comando más de la shell:
variable=$(comando parametro1 parametro2...)
Definiendo la variable sin dólar delante. Recibiendo el valor con un igual, e indicándole que esa variable va a tomar el valor del resultado de la función con dólar y el comando/función con sus parámetros entre paréntesis.
Y no olvidemos que, aunque definamos las variables únicamente con el nombre, para trabar con el valor almacenado hay que escribir un dólar antes del nombre de la variable.