You are on page 1of 4

Universidad Tecnolgica Nacional Facultad Regional Crdoba Ing.

en Sistemas de Informacin

SISTEMAS OPERATIVOS Trabajo Prctico N 8


Resolucin

Tema: Programacin del Shell utilizando estructuras de control: if, case, for, while y until Objetivos: Adquirir destreza en el manejo de las estructuras de control. Actividad: En una terminal de un laboratorio de computacin se necesita desarrollar una solucin en Linux que contemple las siguientes opciones:

a) Agregar a un archivo ya existente la cantidad de archivos indicada por el usuario del


programa y mostrar el nuevo contenido del archivo luego de cada concatenacin. (Utilizar la estructura while).

b) Sumar la cantidad de nmeros indicada por el usuario, mostrando el resultado parcial


de la suma luego de cada nmero sumado, finalmente mostrar la suma total. (Utilizar la estructura until).

c) Por cada archivo que hay en un directorio, si es regular que contar la cantidad de
lneas que tiene y si es subdirectorio mostrar su contenido en formato extendido. (utilizar estructura for).

d) En un directorio ingresado por el usuario, borrar todos los archivos ordinarios o


regulares que contengan ms de tres lneas o registros.

e) Activar el bit suid en cada archivo regular que hay en un directorio.


(Utilizar la estructura for). f) Salir del men. Nota: El men deber contemplar la posibilidad de que el usuario ingrese una opcin incorrecta y en tal caso deber advertrselo a travs del correspondiente mensaje. Realizar todas las validaciones necesarias de los archivos y directorios ingresados.
Presentacin del trabajo La presentacin correcta es imprescindible para aprobar el trabajo ya que se considera muy importante para la formacin profesional del alumno. El trabajo deber ser presentado en procesador de texto y con el siguiente formato a) Cartula: explicitando nombre de la universidad, nombre de la ctedra, Curso, Profesor solicitante, Ttulo del tema a desarrollar, Nmero del grupo, Nombres y legajos de los integrantes y Fecha de entrega del trabajo. b) ndice de contenidos: implica expresar los temas desarrollados respetando el orden en que se los solicita en el trabajo. c) Enunciado: enunciado completo del trabajo prctico entregado por el profesor. d) Introduccin: en la cual los alumnos dejarn constancia del contenido principal (a modo de sntesis), a tratarse en el desarrollo del trabajo. e) Desarrollo: desarrollo del trabajo prctico (cuerpo principal): en el cual se dar respuesta en forma clara y precisa, a todos los requerimientos planteados en el enunciado. f) Conclusin: la que deber contener una reflexin grupal en relacin a la experiencia adquirida, al crecimiento intelectual y personal obtenido. Adems se mencionarn los beneficios logrados como futuros ingenieros en Sistemas de Informacin al realizar el presente trabajo prctico. g) Bibliografa: deber citar el material bibliogrfico, revistas o sitios virtuales especificando claramente ttulo, autor y edicin de los libros y direccin de pginas consultadas. xitos !!!!!!

Ciclo lectivo: 2012

Hoja: .. de ..

Universidad Tecnolgica Nacional Facultad Regional Crdoba Ing. en Sistemas de Informacin

SISTEMAS OPERATIVOS Trabajo Prctico N 8


Resolucin

Fecha de entrega: Ver cronograma de TPs.

while true do clear echo -n "Menu de opciones a) Agregar a un archivo el contenido de n archivos. b) Sumar n nmeros. c) Contar lneas de regulares y listar en formato extendido directorios. d) Borrar archivos ordinarios que excedan la cantidad de 3. e) Activar el bit suid en cada archivo regular que hay en un directorio. f) Salir. Ingrese opcion: " read opc case $opc in a|A) echo -n "Ingrese el archivo base a modificar: " read archibase if test f $archibase then caning=0 echo -n "Ingrese la cantidad de archivos cuyo contenido desea agregarle: " read cantot else echo el archivo base ingresado no existe o no es comn fi while test $caning -ne $cantot do echo -n "Ingrese archivo:a concatenar " read archi if test -f $archi then caning=`expr $caning + 1` cat $archi >> $archibase && echo "El nuevo contenido del archivo es: " more $archibase else echo "El archivo que desea agregar no existe o no es regular" fi done echo Presione enter para continuar read a;; b|B) caning=0 resum=0 echo -n "Ingrese la cantidad de numeros que desea sumar: " read cantot; until test $caning -eq $cantot do echo -n "Ingrese un numero: " read num resum=`expr $resum + $num` caning=`expr $caning + 1` echo -n "El resultado parcial de la suma es: "
Ciclo lectivo: 2012

Hoja: .. de ..

Universidad Tecnolgica Nacional Facultad Regional Crdoba Ing. en Sistemas de Informacin

SISTEMAS OPERATIVOS Trabajo Prctico N 8


Resolucin

$resum done echo "El resultado final de la suma es $resum" echo Presione enter para continuar read a;; c|C) echo -n "Ingrese el directorio: " read di if test -d $di then for i in `ls $di` do if test -f $di/$i then can=`wc -l $di/$i|cut -d' ' -f1` echo "El archivo $i tiene $can lineas" else if test -d $di/$i then echo "El contenido del directorio $i es:" ls -l $di/$i fi fi done else echo "El archivo ingresado no es directorio o no existe." fi echo Presione enter para continuar read a;; d|D) echo "Ingrese directorio: " read dir con=`ls -l $dir|grep '^-'|wc -l` if [ $con -gt 3 ] then for i in `ls $dir` do if [ -f $dir/$i -a $con -gt 3 ] then rm $direlet/$i echo "El archivo $i fue borrado" con=`expr $con - 1` fi done echo "El directorio $dir tiene 3 archivos ordinarios y son los siguientes:" ls -l $dir|grep '^-' else echo "El directorio tiene $con archivos ordinarios" fi echo Presione enter para continuar read a;; e|E) echo -n "Ingrese directorio: "
Ciclo lectivo: 2012

Hoja: .. de ..

Universidad Tecnolgica Nacional Facultad Regional Crdoba Ing. en Sistemas de Informacin

SISTEMAS OPERATIVOS Trabajo Prctico N 8


Resolucin

read direc if [ -d $direc ] then for i in `ls $direc` do if [ -f $direc/$i ] then chmod u+s $direc/$i echo "El archivo $i tiene activado el bit suid" echo "En la siguiente linea puede visualizar los caracteres que representan los permisos:" ls -l $direc/$i fi done else echo "El archivo ingresado no es directorio" fi echo Presione enter para continuar read a;; f|F) echo salimos del men exit;;
*) echo "Opcin incorrecta" echo "Presione cualquier enter para continuar" read a;; esac done

Ciclo lectivo: 2012

Hoja: .. de ..

You might also like