Está en la página 1de 25

ASO3501

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS


OPENSOURCE

Docente: Andrés Aldana


Unidad de Aprendizaje N°3
Programación de Scripts en el
Sistema Operativo RHEL

Experiencia de Aprendizaje 1:
Programación de scripts BASH en RHEL
Scripts básicos en RHEL 6

Objetivos:
• Construir rutinas scripting para automatizar tareas
administrativas en un sistema operativo RHEL de acuerdo
con las necesidades de la organización.
• Construir rutinas scripting para monitorizar y controlar
procesos y/o eventos en un sistema operativo RHEL de
acuerdo con las necesidades de la organización.
Control del flujo en Scripts

• El CONTROL DEL FLUJO es la manera que poseen los


lenguajes de programación de provocar que el flujo de la
ejecución avance y se ramifique en función de los cambios
de estado de los datos.
• El BASH de GNU/LINUX soporta dos tipos de sentencias de
CONTROL DEL FLUJO:
 SENTENCIAS CONDICIONALES, como por ejemplo: if-
then,if-then-else, case.
Control del flujo en Scripts

 SENTENCIAS ITERATIVAS, como por ejemplo: while, for,


until.

• Las SENTENCIAS CONDICIONALES (también llamadas


ESTRUCTURAS DE DECISIÓN) son las que nos permiten
decidir por un camino, entre dos ó más posibles, dada una
condición.
Control del flujo en Scripts

• Si la condición se evalúa como “verdadera”, se cumplirá el


camino inmediato de secuencias, en caso de ser evaluada
la condición como “falsa”, se ejecutará el bloque de
secuencias alternativas.
 If-then, if-then-else – Permiten ejecutar una serie de
comandos dependiendo si una cierta condición se
cumple o no.
Control del flujo en Scripts

 Case – Permite ejecutar una o varias listas de


comandos dependiendo del valor de una variable.

• Las SENTENCIAS ITERATIVAS (también denominadas


ESTRUCTURAS CICLICAS) se utilizan para ejecutar un
bloque de instrucciones un número dado ó un número de
veces hasta que una condición se cumpla.
Control del flujo en Scripts

• Llamaremos CICLO (o BUCLE) a todo proceso que se repite


un cierto número de veces dentro de un archivo de SHELL
SCRIPT o programa.
 while – Permite ejecutar una serie de comandos
mientras que una determinada condición se cumpla.
 for – Permite ejecutar una serie de comandos un
número determinado de veces.
Control del flujo en Scripts

• La mayoría de las condiciones utilizadas con estas


sentencias son principalmente:
 Comparaciones de cadenas alfanuméricas o numéricas.
 Valores de terminación de comandos.
 Comprobaciones de atributos de archivos.
• Las condiciones en BASH se pueden comprobar con test, y
también usando [ ]. Por ejemplo: test –f archivo o bien
[ -f archivo ]
Sentencia condicional IF
Sentencia condicional IF

• Veamos un ejemplo de uso de IF:


#!/bin/bash
clear
echo –e “Ingresar nombre de archivo: \c”
read arch
if test –f $arch
then
more $arch
else
echo –e “$arch no es archivo regular\n”
fi
Sentencia condicional CASE

case $opción in
opc_1) comandos;;
opc_2) comandos;;

*) comandos;;
esac

• La SENTENCIA CONDICIONAL CASE evalúa el valor de una


variable y ejecuta varias instrucciones en función de su
valor. Es similar a usar varios IF anidados.
Sentencia condicional CASE

#!/bin/bash
clear
echo –e “\n\n\t\t\tMENU\n”
echo –e “\t\t1) Iniciar KDE”
echo –e “\t\t2) Iniciar GNOME”
echo –e “\t\t3) Terminar ejecución”
echo –e “\t\tElegir opción [_]\b\b\c”
read opc
case $opc in
1) startx kde;;
2) startx gnome;;
3) exit;;
esac
Sentencia iterativa WHILE
Sentencia iterativa WHILE

• Podemos usar el ciclo WHILE para leer todas las líneas de


un archivo, tal como se muestra en el siguiente ejemplo:
#!/bin/bash
while read línea
do
echo –e "$línea\n"
done < archivo.txt
Sentencias true y false

• Dos órdenes sencillas que pueden ser utilizadas, por


ejemplo dentro de los ciclos, son true y false. Como sus
nombres lo indican, true siempre devuelve un valor cierto
(cero), y false siempre devuelve un valor falso (distinto de
cero).
Sentencias true y false

#!/bin/bash
clear
while true; do
clear
echo “\t\tMENU PRINCIPAL\n\n”
echo “\t\t1) Ver un archivo”
echo “\t\t2) Listar un directorio”
echo “\t\t6) Salir\n\n\n”
echo ““\t\t Ingresar Opción: \c”
read opc

done
Sentencia iterativa FOR
Sentencia iterativa FOR

for variable in [ lista_de_valores ]


do
sentencias
done
• En el ciclo FOR, variable va tomando de uno en uno los
valores de la lista_de_valores, el primer valor de la lista
será tomado en la primera iteración, el segundo valor de la
lista será tomando en la segunda iteración,…, así
sucesivamente hasta tomar TODOS los valores de la lista.
Sentencia iterativa FOR

• Podemos usar el ciclo FOR para leer todas las líneas de un


archivo, tal como se muestra en el siguiente ejemplo:
#!/bin/bash
oldIFS=$IFS
IFS=$'\n'
for línea in $(cat archivo)
do
echo –e "$línea\n"
done
IFS=$old_IFS
Resumen

• El BASH de GNU/LINUX soporta dos tipos de sentencias de


control del flujo: SENTENCIAS CONDICIONALES (if, case) y
SENTENCIAS ITERATIVAS (while, for).
• Las SENTENCIAS CONDICIONALES son las que nos
permiten decidir por un camino, entre dos ó más posibles,
dada una condición.
Resumen

• If-then, if-then-else – Permiten ejecutar una serie de


comandos dependiendo si una cierta condición se cumple
o no.
• Case – Permite ejecutar una o varias listas de comandos
dependiendo del valor de una variable.
Resumen

• while – Permite ejecutar una serie de comandos mientras


que una determinada condición se cumpla.
• for – Permite ejecutar una serie de comandos un número
determinado de veces.
• until – Permite ejecutar una serie de comandos hasta que
una determinada condición se cumpla.
Resumen

• select – Permite crear menús de selección de manera muy


rápida y cómoda.
• 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.
Resumen

• 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.

También podría gustarte