Definición de funciones en programación

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,5 KB

 
4.3 Definición de funciones
Las funciones son un conjunto de órdenes o agrupaciones de órdenes.
SINTAXIS IMPLÍCITA
NombreFuncion ( ) {órdenes}
SINTAXIS EXPLÍCITA
function NombreFuncion( ) {órdenes}
Las funciones s ejecutan siempre en la shell actual y además permanecen en memoria lo que hace que no haya que acceder a disco cada vez que se llama. Las funciones se pueden definir
1)en el archivo del script donde se va a utilizar.Tienen que estar definidas al principio del script y luego se invocan.
2)Utilizar un archivo separado donde están todas las funciones.
Para invocar una función que está definida en el mismo script es suficiente con poner su nombre.
Miscript
#! /usr/bin/ksh
mensaje(){ echo ?Dentro. Son las ?date??}
echo antes
mensaje
echo despues

La ejecución sería:
$ chmod 755 miscript
$ miscript
antes
Dentro.Son las thu 11 13:25 April 02 GMT +1
Despues
$
- Las variables modificadas dentro de la función se modifican en todo el script puesto que no hay variables locales. Una función puede terminar si hay una sentencia
return que devuelve 0 (cierto) o 1 (falso).
- Una función puede tomar parámetros igual que los parámetros generales del script, pero los parámetros no se ponen en la cabecera de la función. Al terminar la ejecución de la función los argumentos del script principal son sobrescritos por los de la función. Lo lógico sería que antes de hacer la llamada a la función guardáramos los argumentos del script principal de la siguiente forma:
_M1=$1 (se utiliza el guión bajo)
_M2=$2
Sólo se pueden utilizar 9 argumentos (de $1 a $9).


Es posible asignar el valor que devuelve una función a una variable mediante sustitución de órdenes:
$M=?mifuncion?
Si utilizamos un archivo diferente para cargar todas las funciones a nivel de shell, todos los scripts podrán utilizarlas. Este archivo normalmente se llama funciones.main
NOTACION PUNTO: para cargar el archivo en memoria a nivel de shell, se pone en la línea de órdenes un punto, un espacio en blanco y el nombre del archivo.
$. funciones.main
Para mostrar todas las funciones que estén definidas y su implementación en el shell, se utiliza el comando
$set. También en algunos sistemas Unix, para comprobar la existencia de funciones se utiliza $typeset-f o $typedef
Para eliminar alguna de estas funciones que están cargadas en memoria utilizo
$unset nombre_fucnion
Si elimino las funciones del archivo de funciones y lo vuelvo a cargar en memoria, las funciones eliminadas ya no aparecen. Si quiero que el archivo donde tengo todas las funciones se cargue al principio de la sesión, puesto que se descargan de memoria cuando cierro la sesión, lo pongo en .profile o .login.
4.3 Matrices /Vectores:
Se denominan normalmente vectores porque lo normal es utilizar matrices de 1*n. Para definirlos, se utiliza:
$set -A nombrevector listavalores
El contenido de los vectores no tiene porque se homogéneos. Para acceder a los elementos se utilizan los índices:
${MIO[3]} (accedo al elemento 3)
Los índices comienzan a contar por 0.