#!/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
#!/bin/bash
function Salir(){
exit
}
function Saludo(){
echo –e “HI!!!…\n”
}
#PRINCIPAL
clear
Saludo #Llamada a la función Saludo
Salir #Llamada a la función Salir
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.
un ejemplo de FUNCIÓN que retorna un valor:
#!/bin/bash
function suma(){
c=$(expr $1 + $2)
return $c
}
#PRINCIPAL
suma 100 150
echo –e “suma=$?\n”
definir funciones en la línea de ordenes, de la siguiente manera:
[root@localhost ~]$ function saludo(){
> echo hi
>}
[root@localhost ~]$ function salir(){
> exit
>}
[root@localhost ~]$ declare –f
declare –f salir
declare –f saludo
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.
#!/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
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.
#!/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 hi everyone
$1=hola
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”:
Se graban en el archivo librería.sh las FUNCIONES que se desean “exportar”.
[alumno@localhost ~]$ vi librería.sh
function saludar(){
echo –e “Hi\n”
}
function salir(){
exit
}
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
Arreglos en BASH
En BASH las variables de tipo arreglo se declaran por medio de:
declare –a nombre_arreglo[tamaño]
En esta definición tamaño hace referencia a la cantidad de elementos del arreglo.
En BASH podemos asignar datos o valores a un arreglo de la siguiente forma:
nombre_arreglo[índice]=valor
En esta definición índice hace referencia a la posición que el valor ingresado tendrá dentro del arreglo.
En BASH es posible referenciar los datos del arreglo a través de la expresión:
${nombre_arreglo[índice]}
Es posible referenciar a TODOS los datos del arreglo de una sola vez por medio de la orden:
${nombre_arreglo[*]}
El total de elementos del arreglo se puede determinar usando:
${nombre_arreglo[@]}
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
}
#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
}
#PRINCIPAL
#!/bin/bash
clear
declare –a A[5]
LLenar_arreglo
Mostrar_arreglo
No hay comentarios:
Publicar un comentario