Vous êtes sur la page 1sur 5

Laboratorio de Sistemas Operativos III I.

- OBJETIVOS:
Identificar el funcionamiento de los shell script. Desarrollar scripts bsicos. Utilizar parmetros y variables. Emplear estructuras bsicas de programacin. Incluir interactividad en los scripts. Definir mens en los scripts.

Nro. DD-106 Pgina 1 de 5

II.- SEGURIDAD:
Advertencia: En este laboratorio est prohibida la manipulacin del hardware, conexiones elctricas o de red; as como la ingestin de alimentos o bebidas.

III.- FUNDAMENTO TERICO:


Revise el tema de desarrollo en su separata.

IV.- NORMAS EMPLEADAS:


No aplica

V.- RECURSOS:
En este laboratorio cada alumno trabajar con un equipo con Windows XP. Este equipo debe tener instalado el programa VMware Workstation y una plantilla de alguna distribucin de Linux.

VI.- METODOLOGA PARA EL DESARROLLO DE LA TAREA:


El desarrollo del laboratorio es individual.

VII.- PROCEDIMIENTO:
CREACIN DEL EQUIPO VIRTUAL 1. Abra el VMware Workstation. 2. Defina un equipo virtual con las siguientes caractersticas: Opcin Clon de Nombre Memoria Red Otros 3. Encienda el equipo. 4. En la consola grfica, inicie sesin con el usuario root. 5. Abra una ventana Terminal para desarrollar el laboratorio. Valor La plantilla de Linux indicada por el instructor SO3 Scripts bsicos 256 MB Host-only CD-ROM

VARIABLES Y ARGUMENTOS (PARMETROS) 1. Cree el directorio /usr/scripts y ubquese en l. En este directorio se definirn los scripts de este laboratorio: mkdir /usr/scripts cd /usr/scripts

Laboratorio de Sistemas Operativos III

Nro. DD-106 Pgina 2 de 5

2. Cree un script y ejectelo para comprobar el valor de las variables del sistema: Cree el archivo de texto varSistema con el siguiente cdigo: echo Directorio hogar = $HOME echo Rutas del sistema = $PATH echo Shell = $SHELL echo Usuario actual = $LOGNAME Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo: chmod 744 varSistema ./varSistema Note que las variables del sistema tienen permanentemente un valor asociado. 3. Cree un script y ejectelo para comprobar el funcionamiento de variables de usuario, as como el uso de los delimitadores de texto: Cree el archivo de texto varUsuario varUsuario con el siguiente cdigo: a=$LOGNAME b=$LOGNAME c=`date` echo -e a = $a. \c echo b = $b echo c = $c Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo: chmod 744 varUsuario varUsuario ./varUsuario ./varUsuario Qu diferencia encuentra entra las comillas ( ) y los apstrofes ( )?

Para qu sirven los apstrofes invertidos (` `)?

4. Cree un script y ejectelo para comprobar la recepcin y uso de los argumentos: Cree el archivo de texto usoArgs con el siguiente cdigo: echo Nombre del script: $0 echo Primer argumento: $1 echo Segundo argumento: $2 echo Tercer argumento: $3 echo Nmero de argumentos: $# echo Todos los argumentos: $* shift echo Todos los argumentos: $* shift echo Todos los argumentos: $* Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo pasndole tres argumentos: chmod 744 usoArgs ./usoArgs ./usoArgs AQP Tecsup 2 Qu ocurre cada vez que se invoca al comando shift?

Nota: Es posible agregar secuencias de escape a los scripts para modificar el formato del texto. Tenemos disponibles las siguientes: 033[0m Normal 033[1m Negrita 033[5m Parpadeante 033[31m, 033[32m, , 033[37m Distintos colores

Laboratorio de Sistemas Operativos III

Nro. DD-106 Pgina 3 de 5

Por ejemplo, la primera lnea del script podra escribirse de la siguiente manera y se mostrara el valor de la variable en negrita: echo -e \033[0mPrimer argumento: \033[1m$1

CONDICIONES EN LOS SCRIPTS 1. Cree un script y ejectelo para comprobar el uso de condiciones: Cree el archivo de texto condicion1 con el siguiente cdigo: if [ $# -eq 0 ] ; then echo No se recibieron argumentos else echo Se recibieron $# argumentos fi Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo dos veces: en la primera ejecucin no le pase argumentos y en la segunda psele varios argumentos: chmod 744 condicion1 condicion1 ./condicion1 ./condicion1 ./condicion1 ./condicion1 AQP Tecsup 2 2. Cree un script y ejectelo para comprobar el uso de operadores condicionales especiales: Cree el archivo de texto condicion2 con el siguiente cdigo: if [ -f $1 ] ; then echo -e \033[1mEl contenido del archivo es:\033[34m cat $1 echo -e \033[0m else echo El archivo indicado no existe fi Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo dos veces: en la primera ejecucin indique un nombre de archivo que no existe, mientras que en la segunda psele un nombre de archivo que s existe: chmod 744 condicion2 condicion2 ./condicion ./condicion2 condicion2 /etc/noexiste ./condicion2 ./condicion2 /etc/hosts

EVALUACIN DE EXPRESIONES Y BUCLES EN LOS SCRIPTS 1. Cree un script y ejectelo para comprobar la evaluacin de las expresiones: Cree el archivo de texto expresion1 expresion1 con el siguiente cdigo: expr $1 + $2 expr $1 - $2 expr $1 \* $2 expr $1 / $2 expr $1 % $2 Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo pasndole dos nmeros como argumentos: chmod 744 expresion1 expresion1 ./expresion ./expresion1 expresion1 10 3 2. Cree un script y ejectelo para verificar los bucles numricos: Cree el archivo de texto bucle1 con el siguiente cdigo: cont=1 while [ $cont -le 10 ] ; do echo $cont cont=`expr $cont + 1` done Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo: chmod 744 bucle1 bucle1 ./bucle ./bucle1 bucle1

Laboratorio de Sistemas Operativos III

Nro. DD-106 Pgina 4 de 5

3. Cree un script y ejectelo para verificar el funcionamiento del for: Cree el archivo de texto bucle4 bucle4 con el siguiente cdigo: # Se muestran las tres primeras filas de texto de los archivos for archivo in $* ; do echo $archivo head -3 $archivo echo done Establezca el atributo de ejecucin al archivo de texto anterior para convertirlo en un script y luego ejectelo pasando distintos argumentos cada vez: chmod 744 bucle4 bucle4 ./bucle4 ./bucle4 /etc/hosts /etc/resolv.conf ./bucle4 /etc/b* /etc/b* ./bucle4 /etc/[ab /etc/[abc [abc]*

Nota: En las invocaciones del bucle anterior, se genera un argumento por cada archivo /etc/c*.

EJERCICIOS PROPUESTOS 1. Sabiendo que el comando date +%k muestra la hora (formato de 24h) y el comando date +%M muestra los minutos (0-59), desarrolle el script hora que muestre la hora en formato de 12 horas incluyendo AM o PM segn corresponda:

2. Cree el script bucle2, basado en bucle1, donde el inicio, el final y el incremento sean pasados como argumentos:

3. Cree el script bucle3 bucle3, basado en bucle2 bucle2, donde los nmeros pares se muestren en negritas y los impares en formato normal:

Laboratorio de Sistemas Operativos III

Nro. DD-106 Pgina 5 de 5

4. Cree el script bucle5 bucle5, basado en bucle4 bucle4, donde el nombre del archivo se muestre en negritas (primer echo) y las primeras lneas del contenido (head ) se muestren en otro color:

FINALIZACIN DEL LABORATORIO 1. Apague el equipo virtual y elimnelo del disco. 2. Apague el equipo anfitrin (host).

VIII.- OBSERVACIONES Y CONCLUSIONES

Vous aimerez peut-être aussi