Funciones#

[1]:
%%bash
#
# En el siguiente ejemplo se crea una función en Bash. Después
# del nombre de la función siempre se escribe `()` y se
# delimita el cuerpo de la función usando llaves (`{`  y `}`).
#
demo(){
  echo hola mundo
}
[2]:
%%bash
#
# Para ejecutar la función simplemente se escribe su nombre
# (sin `()`).
#
demo(){
  echo hola mundo
}
demo
hola mundo
[3]:
%%bash
#
# Los argumentos se notan como `$1`... al igual que en los
# scripts. En este caso `$0` es el `bash` y no se puede acceder
# al nombre de la función. Note que en la llamada a la función
# no se usan paréntesis, tal como si ocurre en otros lenguajes
# de programación.
#
demo() {
  echo $@
  echo $*
  echo $0
  echo $1
  echo $#
}
demo a b c d
a b c d
a b c d
bash
a
4
[4]:
%%bash
#
# Las funciones pueden ser almacenadas y ejecutadas dentro de
# un script, tal como se muestra a continuación.
#
cat > maxmin.sh <<EOF
min2(){
    echo 'arg1 (min2): ' \$1
    echo 'arg2 (min2): ' \$2
    if ((\$1 < \$2))
    then
        echo \$1
    else
        echo \$2
    fi
}

max2(){
    echo 'arg1 (max2): ' \$1
    echo 'arg2 (max2): ' \$2
    if ((\$1 > \$2))
    then
        echo \$1
    else
        echo \$2
    fi
}

max2 \$3 \$4
min2 \$1 \$2
EOF
[5]:
%%bash
#
# Ejecución del script.
#
bash maxmin.sh 10 20 30 40
arg1 (max2):  30
arg2 (max2):  40
40
arg1 (min2):  10
arg2 (min2):  20
10