Ejercicios de programación Shell
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 $