Sie sind auf Seite 1von 6

Sistemas Operativos II

IV Ciclo

Laboratorio N 16
Shell Script Basico

Sistemas Operativos II

Shell Script Bsico

Laboratorio No. 16
Shell Script Basico
Objetivos:

Aprender el uso de variables en shell script.


Aprender el uso de sentencias de control en shell script.
Crear scripts sencillos para administrar el SO CentOS 6.x

Equipos, Materiales, Programas y Recursos:

PC personal
Sistema Operativo CentOS 6.x

Introduccin:
Muchas de las tareas de administracin del sistema operativo Linux son repetitivas e
involucran el uso de varios comandos ingresados secuencialmente; agregumosle a esto
que las labores de mantenimiento en un servidor en produccin deben hacerse durante
periodos de tiempo en el cual este no tiene carga de trabajo o en todo caso esta es mnima.
Esto ocurre generalmente en horarios fuera de la hora de trabajo como son las madrugadas.
Para poder realizar estas tareas de forma automtica podemos recurrir a los scripts. Estos
scripts son interpretados por el shell y contienen una lista de comandos y otras sentencias
que nos permiten automatizar las tareas de mantenimiento. En este laboratorio veremos los
conceptos bsicos de shell script para el mantenimiento del SO.
Seguridad:

Ubicar maletines y/o mochilas en el gabinete al final de aula de Laboratorio.


No ingresar con lquidos ni comida al aula de Laboratorio.
Al culminar la sesin de laboratorio, apagar correctamente la computadora y el monitor.

Preparacin:
El alumno debe haber revisado previamente el material que se encuentra en el Tecsup
Virtu@l.

Dpto. de Informtica

Pg. 1

Shell Script Bsico

Sistemas Operativos II

Procedimiento:
Para empezar a entender los conceptos bsicos de script realizaremos inicialmente algunos ejemplos
sencillos.
1. En un script se pueden pasar argumentos, los cuales el Linux reconoce como parmetros
posicionales de acuerdo al orden en que fueron ingresados al ejecutar el comando. Por ejemplo
cree el siguiente script, llmelo script1.sh (no es necesario escribir los comentarios).
echo Parametro No 1 = $1
echo Parametro No 2 = $2
echo Numero de parametros = $#

# muestra el primer parmetro


# muestra el segundo parmetro
# muestra el numero de argumentos

Convertir el archivo script1 en un ejecutable:


chmod 700 script1
Cual es la salida al ejecutar el comando:
./script1 dato1 dato2
2. Una de las tareas comunes en un script es evaluar una condicin para ello se utiliza la sentencia
if ... then ... fi. Supongamos que en nuestro ejemplo queremos asegurarnos que solo se enven
dos argumentos:
num = $#
if [ $num ne 2 ]
# si el valor de num no es igual a 2
then
echo Numero de argumentos debe ser igual a 2
exit
# termina el programa
fi
echo Parametro No 1 = $1
echo Parametro No 2 = $2
** Investigue las diferentes operaciones evaluativas que se pueden realizar:
man test
test --help
3. Otra opcin es solicitar los datos de forma interactiva para ello se utiliza la sentencia read. Cree
el siguiente script llmelo script2.sh:
clear
echo -e Ingrese Primer dato : \c
read dato1
echo -e Ingrese Segundo dato : \c
read dato2
** Investigue los modificadores de presentacin del comando echo:
man echo
echo --help
4. Se pueden hacer operaciones con esos datos, para ello se utiliza la sentencia expr. Haga las
siguientes modificaciones al script2.sh:
clear
echo Suma
echo -e Ingrese Primer dato : \c
read dato1
echo -e Ingrese Segundo dato : \c
read dato2
result = `expr $dato1 + $dato2`
echo Resultado : $result
Pg. 2

Dpto. de Informtica

Sistemas Operativos II

Shell Script Bsico

** Investigue las posibles operaciones que se pueden realizar con el comando expr.
man expr
expr --help
5. En el comando echo, tambin se puede enviar cdigos de control que permiten cambiar la
apariencia del texto. Por ejemplo mostrarlos con un color diferente. El formato es:
echo e \NNN texto, donde NNN es el cdigo de control. Entre estos cdigos tenemos:
033[1m --> negrita (bolt)
033[5m --> parpadeo (blink)
033[0m --> normal
033[31m, 033[32m, ..., 033[36m --> colores
Por ejemplo la siguiente sentencia mostrara el texto en un color diferente:
echo e \033[31m Ingrese Primer dato

: \c

6. Otra de las posibilidades cuando se crea un script es realizar bucles o loop para se ello puede
utilizar la sentencia while do ... done. Modifique el script2.sh para poder hacer la operacin
anterior hasta que le usuario no desee continuar:
cont="s"
while [ $cont = "s" ]
do
clear
echo "Suma"
echo -e "Ingrese Primer dato : \c"
read dato1
echo -e "Ingrese Segundo dato : \c"
read dato2
resul=`expr $dato1 + $dato2`
echo "Resultado : $resul"
echo -e "Desea continuar (s/n)? \c"
read cont
done
La sentencia while do .. done, se puede utilizar tambin como un contador. Cree el siguiente
script, llmelo script3.sh
echo -e Esto muestra una cuenta descendente \n \r
echo -e Ingrese un nmero:
read v3
while [ $v3 gt 0 ]
do
v3=`expr $v3 1`
echo $v3
done
Cree un script para mostrar la tabla de multiplicar de un numero. Se debe ingresar el nmero y
luego mostrar los resultado de multiplicarlo del 1 al 12. Llame a este script, script4.sh. Anote el
codigo del script.

Dpto. de Informtica

Pg. 3

Shell Script Bsico

Sistemas Operativos II

7. Tambin se puede incluir un men de opciones en un script. Una forma de aplicar esto es a travs
de la sentencia case. Modifique el script2.sh para que le de la opcin de escoger entre las
diferentes operaciones:
cont="s"
while [ $cont = "s" ]
do
clear
echo "Operaciones"
echo
echo "1. Suma"
echo "2. Resta"
echo "3. Multiplicacion"
echo "4. Division"
echo "5. Salir"
echo
echo -e "Ingrese Opcion \c"
read opc
echo
echo -e "Ingrese Primer dato : \c"
read dato1
echo -e "Ingrese Segundo dato : \c"
read dato2
case $opc in
1) resul=`expr $dato1 + $dato2`;;
2) resul=`expr $dato1 - $dato2`;;
3) resul=`expr $dato1 \* $dato2`;;
4) resul=`expr $dato1 / $dato2`;;
5) exit 0;;
*) echo "Opcin Invalida";;
esac
if [ $opc -gt 0 -a $opc -le 5 ]
then
echo "Resultado : $resul"
fi
sleep 2
done
8. Modifique el script2 para que las opciones aparezcan en un archivo de texto aparte y muestruelas
con el comando cat.
9. Modifique el script anterior para que no se solicite valores cuando se ingrese una opcin invlida.

Pg. 4

Dpto. de Informtica

Sistemas Operativos II

Shell Script Bsico

SCRIPT APLICADOS
10. Los sript se utilizan segn la necesidad del usuario. Aqu le mostramos algunos ejemplos de uso
de script.
11. Cree un script que le permita mostrar la hora en formato de 12 horas:
# Script para mostrar la hora en formato am/pm
hours=`date +'%k'`
mins=`date +'%M'`
if [ $hours -eq 0 ]
then
hours=12
fi
if [ $hours -gt 12 ]
then
hours=`expr $hours - 12`
ampm=pm
else
ampm=am
fi
echo $hours:$mins $ampm
Con la ayuda del man indique para que se utilizan las opciones %k y %M, en el comando date.
______________________________________________________________________________
______________________________________________________________________________
12. Cree un script que le permita localizar los archivos que excedan un tamao:
# Script para localizar archivos que excedan un tamao
echo e "Ingrese el mnimo tamao en bloques de los archivos buscados [default=1000]: \c: "
read blocks
if [ -z "$blocks" ] ; then
blocks=1000
fi
echo e "Ingrese el nombre del directorio para iniciar la bsqueda [default=/]: \c: "
read dir
if [ -z "$dir" ] ; then
dir=/
fi
find $dir -size +$blocks -print | more
Con la ayuda del man indique para que se utiliza la opcin z, en la sentencia if.
______________________________________________________________________________
Con la ayuda del man indique para que se utiliza la opcin size, en el comando find.
______________________________________________________________________________

Observaciones y Conclusiones:

Dpto. de Informtica

Pg. 5

Das könnte Ihnen auch gefallen