Podemos definir funciones en un script de shell utilizando la siguiente sintaxis:
nombre_funcion() { # comandos o instrucciones bash. } o function nombre_de_la_funcion { # comandos o instrucciones bash. } y para inocarla se utiliza la siguiente sitanxis: nombre_funcion p! p" p# donde p!$ p"$ p# hacen referencia a los par%metros &ue se en'an (iempre tenemos &ue definir la funci)n antes de llamarla: #*+bin+bash # ,efinici)n de funciones funcion!() { comandos } funcion"() { comandos } # Programa principal funcion! p! p" p# Paso de par%metros -a funci)n referencia los par%metros pasados por posici)n$ es decir$ .!$ ."$ ...$ y ./ para la lista completa: . nano funcion!.sh
0ariables locales 1s posible definir ariables locales en las funciones: . nano locales.sh return ,espu2s de llamar a una funci)n$ .3 tiene el c)digo se salida del 4ltimo comando e5ecutado: podemos ponerlo de forma expl'cita usando return return permite deoler un entero entre 6 y "77 8ecursi)n 9ash permite recursi)n$ no recomendable debido a su coste 15emplo: recorre recursiamente los directorios y muestra los archios &ue existen en dicho directorio 1l siguiente e5emplo consiste en realizar funci)n &ue realiza un incremento desde 6 hasta un limite establecido$ siempre y cuando este sea positio :eneraci)n de ;en4 1l comando (1-1<= Permite seleccionar al usuario una opci)n de una lista de opciones en un men4. -a sintaxis de esta construcci)n es la siguiente: select nombre >in lista? do comandos &ue pueden utilizar .nombre done 15emplo.@ A continuaci)n se muestra un listado de opciones y se selecciona uno de ellos y se despliega la opci)n seccionada. Actividades !. 1ntrega los e5emplos &ue forman parte de estas notas. ". :enera un men4 &ue contenga las siguientes opciones: (se debe realizar con " n4meros y cuando termine una operaci)n$ debe regresar al men4 principal ) !. (uma ". 8esta #. ;ultiplicaci)n B. ,iisi)n 7. ;odulo C. (alir #. ;odifica el programa incremento.sh$ para generar decremento.sh &ue simplemente har% el decremento de n hasta 6 B. -eer los siguientes datos: (15emplo) !. Dombre: Euan ". 1dad:"6 #. Fecha Dacimiento:!6@!6@!GG6 Htilizar el programa guardar y generar un archio txt con las # primeras letras de la cadena nombre concatenado con la edad. (5ua"6.txt) 7. :enerar el programa de mostrar un rect%ngulo de un ancho y un alto proporcionado por el usuario$ adem%s de proporcionar un mensa5e. <entrar el mensa5e en el rect%ngulo rellenado por /. (no usar el generado en el lengua5e <). C. :enerar un programa donde se imprima lo siguiente: !. .+rombo.sh # / /// ///// /// / I. :enera un menu donde se tenga como opciones los programas de los incisos # (incremento y decremento)$B$7 y C.