2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 9: Funciones, variables y arreglos en BASH Nombre.

Slides:



Advertisements
Presentaciones similares
Introducción a la programación (Clase 2)
Advertisements

Comandos Sencillos.
Estrella 0 - Fundamentos de la Programación
Abstracción de Datos Arrays.
Programación Básica con NQC Pedro F. Toledo – Patricio Castillo 18/08/2006.
PHP-MYSQL OPERADORES EN PHP
Direcciones, Arreglos y Argumentos de Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
Desarrollo de Aplicaciones para Internet
Informática II Prof. Dr. Gustavo Patiño MJ
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Unidad 3 Punteros.
Vectores en java.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Tema 6: Clases Antonio J. Sierra.
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE Instructor: Ingeniero Adrián Guerrero Taborda
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Lenguaje C.
Semana 5 Subprogramas..
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
UNIDAD V Arreglos y Cadenas
Clase 10: Estructuras de datos y arreglos.
Valor X Valor Y Punto (0,0) Coordenadas.
MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO.
FILTROS. Un filtro es un programa que recibe una entrada, la procesa y devuelve una salida. Relacionando filtros simples podemos hacer prácticamente cualquier.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 7: Control del flujo en BASH Nombre unidad de.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
introducción al lenguaje
Administración de Servicios de Red 1 Escuela de Informática y Telecomunicaciones Suplementos: Shell scripts rpm RHA 030 Sistemas Operativos de Red.
Programación Aplicada
Elementos básicos del lenguaje
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 12: Introducción a AWK Nombre unidad de aprendizaje:
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 8: Control del flujo en BASH Nombre unidad de.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 4: Comandos de manipulación de Archivos y filtros.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
PEDRO ALBERTO ARIAS QUINTERO. El shell es un intérprete de órdenes, los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como.
Estructura de datos I CIS - UABJB.
INSTRUCCIONES. El alumno, seguirá los pasos que se le va indicando a continuación. En el recuadro en blanco, debe ir añadiendo un pantallazo con la.
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Vamos a tratar algunos temas que es necesario conocer a la hora de administrar un sistema informático y que nos van a ser útiles sin importar el sistema.
INTRODUCCION A LA PROGRAMACION
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Fundamentos de Programación
Arreglos unidimensionales
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Práctica Profesional PHP.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Lenguaje de Programación II PLAN DE EVALUACIÓN CONTENIDO MODALIDAD DE EVAL. PONDERACIÓN INTRODUCCIÓN BÁSICA AL LENGUAJE DE PROGRAMACIÓN.
Tema 1. Estructuras de datos Objetivo: Objetivo: El alumno resolverá problemas de almacenamiento, recuperación y ordenamiento de datos y las técnicas de.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Excel 2013 Informática en los negocios lci. Excel 2013  ¿Qué es un RANGO en Excel?  Es un conjunto de celdas contiguas que pueden ser seleccionadas.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 9: Funciones, variables y arreglos en BASH Nombre unidad de aprendizaje: Introducción a los SCRIPTS Programación Aplicada

2© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Objetivos  Objetivos de la clase  Programa rutinas utilizando los diferentes tipos de variables, constantes, operadores y sentencias de control en lenguaje Bash.

3© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Como en prácticamente todos los lenguajes de programación, en el BASH de GNU/LINUX se pueden utilizar funciones para agrupar trozos de código o rutinas de una manera más lógica.  Esto permitirá organizar un SCRIPT en unidades lógicas de manera que sea más fácil mantenerlo y programarlo (y entenderlo), sin necesidad de estar repitiendo múltiples veces una misma porción de código.

4© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  El uso de FUNCIONES en BASH, nos va a ayudar en: Tareas en las que debamos repetir cierto número de veces lo mismo, sin necesidad de duplicar líneas. Desglosar todo lo que vayamos a hacer, en conjuntos de acciones, resolviendo cada problema individualmente (programación modular).

5© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Las FUNCIONES, a diferencia de los SCRIPTS, se ejecutan dentro de la memoria del propio proceso BASH, por lo que resultan más eficientes que ejecutar SCRIPTS separados, pero tienen el inconveniente de que tienen que estar siempre cargadas en la memoria del proceso BASH para poder utilizarse.

6© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Actualmente, debido a la gran cantidad de memoria que tienen los computadores, el tener FUNCIONES cargadas en la memoria de BASH tiene un costo insignificante.  Las funciones de BASH son una extensión de las funciones que existen desde el BOURNE SHELL.

7© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Así, en BASH las funciones se pueden definir básicamente de dos maneras:  Al estilo del BOURNE SHELL: function nombre_de_función(){ comandos_de_la_función ….. }

8© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  O bien, al estilo del C SHELL:  NO existe diferencia entre ellos, y se utilizarán indistintamente ambos formatos. nombre_de_función(){ comandos_de_la_función ….. }

9© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Para ejecutar una FUNCIÓN simplemente basta escribir su nombre seguido de argumentos, tal como si se tratará de un comando.  Los argumentos actúan como PARÁMETROS DE LA FUNCIÓN.  En caso de que sea necesario pasar varios parámetros a la función, se especificaran uno detrás de otro separados por espacios.

10© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Ejemplo de funciones en BASH #!/bin/bash #función para listar el directorio function Listar(){ if test –d $1 then ls –l $1 fi } #PRINCIPAL clear echo –e “Ingresar un Directorio: \c” read dir Listar $dir#Llamada a la función Listar

11© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Ejemplo de funciones en BASH #!/bin/bash function Salir(){ exit } function Saludo(){ echo –e “Hola Mundo!!!…\n” } #PRINCIPAL clear Saludo#Llamada a la función Saludo Salir#Llamada a la función Salir

12© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Las funciones en BASH, al igual que un SCRIPT devuelven un valor, el que podemos establecer con la sentencia exit.  Las funciones en BASH pueden “retornar” un valor por medio de la sentencia return, que se usa de la misma manera que exit.  La sentencia return solo sirve para retornar enteros entre 0 y 255.

13© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Veamos un ejemplo de FUNCIÓN que retorna un valor: #!/bin/bash function suma(){ c=$(expr $1 + $2) return $c } #PRINCIPAL suma echo –e “suma=$?\n”

14© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Podemos definir funciones en la línea de ordenes, de la siguiente manera: ~]$ function saludo(){ >echo hola >} ~]$ function salir(){ >exit >} ~]$ declare –f declare –f salir declare –f saludo

15© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Notar que para “entrar” las líneas de la función se debe presionar +.  Podemos ver que funciones tenemos definidas en una sesión usando el comando declare –f. El SHELL imprime las funciones, y su definición, ordenadas alfabéticamente.  Si preferimos sólo el nombre de las funciones podemos usar el comando declare –F.

16© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Funciones en BASH  Si una función tiene el mismo nombre que un SCRIPT o ejecutable, la FUNCIÓN tiene preferencia.  Para borrar una FUNCIÓN podemos usar el comando unset –f nombre_función.

17© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Los PARÁMETROS POSICIONALES  Los PARÁMETROS POSICIONALES son los encargados de recibir los argumentos de un SCRIPT y los PARÁMETROS DE UNA FUNCIÓN.  Los nombres de los PARÁMETROS POSICIONALES son 1, 2, 3, etc. por lo que para acceder a ellos utilizaremos $1, $2, $3, etc.

18© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Los PARÁMETROS POSICIONALES #!/bin/bash function impParam(){ echo –e “Nombre del SCRIPT : $0” echo –e “Primer parámetro : $1” echo –e “Segundo parámetro : $2” echo –e “TODOS los parámetros: $*” } #PRINCIPAL clear impParam hola a todo el mundo

19© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Los PARÁMETROS POSICIONALES  Además, se tiene el PARÁMETRO POSICIONAL 0 que almacena el nombre del SCRIPT donde se ejecuta.  Los valores de los PARÁMETROS POSICIONALES no es posible modificarlos, sólo se pueden leer, si se intenta asignarles un valor se produce un error.

20© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Variables locales y globales  Por defecto, los PARÁMETROS POSICIONALES son locales al SCRIPT o FUNCIÓN y no se pueden acceder o modificar desde otra FUNCIÓN.  A diferencia de los PARÁMETROS POSICIONALES, el resto de variables que definimos en un SCRIPT o FUNCIÓN son globales, es decir, una vez definidas en el SCRIPT son accesibles (y modificables) desde cualquier FUNCIÓN.

21© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Variables locales y globales #!/bin/bash function impParam(){ echo –e “Nombre del SCRIPT : $0” echo –e “Primer parámetro : $1” echo –e “TODOS los parámetros: $*” } #PRINCIPAL clear impParam hola a todo el mundo $1=hola

22© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Variables locales y globales  En el ejemplo anterior la sentencia marcada da el siguiente mensaje de error:  Las variables por defecto son globales en BASH, por lo que si queremos que una variable sea local, tenemos que definirla como local dentro de la función:./parametros: line 10: =hola: commnad not found

23© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Variables locales y globales  El modificador local sólo se puede usar dentro de las funciones, NO en los SCRIPTS.  Por último, las variables globales también se pueden definir dentro de una FUNCIÓN. func(){ var1=2 #Variable global local var2=23 #define una variable local }

24© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Variables locales y globales #!/bin/bash function f1(){ v1=25 local v2=57 } function f2(){ echo –e “v1=$v1” } #PRINCIPAL f1 f2 echo –e “v1=$v1” echo –e “v2=$v2”

25© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Las variables $*, y $#  La variable $# almacena el número de argumentos o parámetros recibidos por el SCRIPT o la FUNCIÓN.  El valor almacenado en $# es de tipo cadena de caracteres.  Tanto $* como nos devuelven los argumentos recibidos por el SCRIPT o FUNCIÓN.

26© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Las variables $*, y $# #!/bin/bash function impParam(){ echo –e “Nombre del SCRIPT : $0” echo –e “Primer parámetro : $1” echo –e “TODOS los parámetros: $*” echo –e “Cantidad de parámetros: $#” } #PRINCIPAL clear impParam hola a todo el mundo

27© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Librería de FUNCIONES  A la hora de programar SCRIPTS de SHELL no es que existan herramientas para declarar librerías, pero se pueden simular de cierta manera colocando el código de FUNCIONES en archivos de SCRIPTS separados.  El siguiente ejemplo corresponde a un ejemplo de uso de librerías, usando un archivo con las funciones que queremos “exportar”:

28© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Librería de FUNCIONES  Se graban en el archivo librería.sh las FUNCIONES que se desean “exportar”. ~]$ vi librería.sh function saludar(){ echo –e “Hola\n” } function salir(){ exit }

29© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Librería de FUNCIONES  Se incluye el archivo librería.sh en el SCRIPT en donde deseemos ocupar las FUNCIONES “importadas”. #!/bin/bash #libreria.sh contiene las funciones a ser utilizadas source librería.sh …..

30© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Arreglos en BASH  En BASH es posible definir arreglos (arrays), pero únicamente unidimensionales.  En BASH no hay un limite máximo en el tamaño de un arreglo, ni es necesario que los miembros de un arreglo se indexen de forma contigua.

31© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Arreglos en BASH  En BASH las variables de tipo arreglo se declaran por medio de:  En esta definición tamaño hace referencia a la cantidad de elementos del arreglo. declare –a nombre_arreglo[tamaño]

32© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Arreglos en BASH  En BASH podemos asignar datos o valores a un arreglo de la siguiente forma:  En esta definición índice hace referencia a la posición que el valor ingresado tendrá dentro del arreglo. nombre_arreglo[índice]=valor

33© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Arreglos en BASH  En BASH es posible referenciar los datos del arreglo a través de la expresión:  Es posible referenciar a TODOS los datos del arreglo de una sola vez por medio de la orden: ${nombre_arreglo[índice]} ${nombre_arreglo[*]}

34© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Arreglos en BASH  El total de elementos del arreglo se puede determinar usando:

35© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Ejemplos de uso de arreglos en BASH #Función para colocar datos en #el arreglo function LLenar_arreglo(){ local i=1 while test $i –le 5 do echo –e “Numero: \c” read A[$i] i=$(expr $i + 1) done }

36© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Ejemplos de uso de arreglos en BASH #Función para mostrar los datos #del arreglo function Mostrar_arreglo(){ local i=1 while test $i –le 5 do echo –e “A[$i]=${A[$i]}\n” i=$(expr $i + 1) done }

37© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Ejemplos de uso de arreglos en BASH #PRINCIPAL #!/bin/bash clear declare –a A[5] LLenar_arreglo Mostrar_arreglo

38© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Resumen  Resumen de la clase  Como en prácticamente todos los lenguajes de programación, en el BASH de GNU/LINUX se pueden utilizar funciones para agrupar trozos de código o rutinas de una manera más lógica, de manera que sea mas fácil mantenerlo, programarlo y entenderlo, sin necesidad de estar repitiendo múltiples veces una misma porción de código.  En BASH las funciones se pueden definir básicamente de dos maneras: al estilo del BOURNE SHELL o bien al estilo del C SHELL.  Las funciones en BASH, al igual que un SCRIPT devuelven un valor, el que podemos establecer con la sentencia exit, y también pueden “retornar” un valor por medio de la sentencia return, que se usa de la misma manera que exit.

39© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Resumen  Resumen de la clase  En BASH es posible definir arreglos, pero únicamente unidimensionales.  Las operaciones con arreglos en BASH son las usuales de cualquier otro lenguaje de programación: se pueden ingresar datos al arreglo, se pueden leer datos del arreglo, se puede hacer referencia a un dato en particular del arreglo, etc.