1.- Desarrolle un programa Shell que permita remover todos los archivos
de extensión .o del directorio donde se ejecuta su programa Shell
script y de todos sus subdirectorios.
Analice las soluciones presentadas a continuación:
Primera solución: Este script es llamado p1.sh <dir a examinar>
#! /bin/bash
recursivo.sh `pwd` $1
En archivo recursivo.sh tenemos:
#! /bin/bash
cd $2
for i in *.o do if test –f $i then rm $i
fi
done
for i in * do if test -d $i then $1/recursivo.sh $1 $i
fi
done
Otra solución:
#!/bin/bash
rm -f `find ./. -type f -name \*.o`
Otra solución:
#!/bin/bash
function todo() {
rm $1/*.o
for i in $1/*
do
if test -d $i
then
todo $i
fi
done
}
todo `pwd`
2.- Un profesor de enseñanza básica le pide a usted que haga algún
(nos) programa (s) shell que le permita revisar las pruebas de su
curso. La prueba (prueba.txt) contiene un problema por línea del tipo
45*(10-8). Cada respuesta de los alumnos fue entregada en un archivo
(nombre_alumno.txt) donde hay una respuesta por línea. A usted se le
pide un programa shell (nota.sh) del tipo:
% nota.sh prueba.txt nombre_alumno.txt
El cual retorna la nota obtenida por el alumno como el cuociente (Nro_preguntas_correctas/total_preguntas).
Ejemplo: Si la prueba fuera de dos preguntas, podríamos tener:
Contenido de prueba.txt
Contenido para un Alumno Paula_Gonzalez.txt
45*(10-8)
90
4*6+20/2
34
Considere el uso del programa bc, el cual termina al ingresar quit, ejemplo de su uso es:
agustin@agustin2005 $ bc -q
45*(10-8)
90
quit
agustin@agustin2005 $