Funciones

#!/bin/sh

foo() {
echo "Function foo is executing"
}

echo "Script starting"
foo
echo "Script ended"

exit 0
ejecutando el script

$ sh foo.sh
Script starting
Function foo is executing
Script ended
$
Cuando se llama a una función se reemplazan los parámetros posicionales del script ($0, $*, $#, $@, $1, $2...) se reenplazan con los de la función. Cuando esta termina se restablecen los valores anteriores (algunos shell antiguos no lo hacen, así que ojo).

Se pueden declarar variables locales a las funciones usando la palabra local

local variable="variable local"
Si hay dos variables con el mismo nombre, la función accederá a la local.

ENVÍO DE VALORES

#!/bin/sh

yes_or_not() {
echo "Is $* your name?"
while true
do
echo -n "Enter yes or no: "
read x
case "$x" in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo "Answer yes or no"
esac
done
}

Echo "Original parameters are $*"

if yes_or_no "$1"
then
echo "Hi $1, nice name"
else
echo "Never mind"
fi

exit 0

No hay comentarios:

Publicar un comentario