Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/11/2015, 10:07
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Una mano para un Script de Linux

Yo lo hubiese hecho con "du", o con stat en vez de ls, o incluso con la opción -ls de find en vez de "-exec ls -l". Pero eso son detalles, lo importante es utilizar las herramientas que ya tienes por estar corriendo en un Linux.
Lo de las múltiples extensiones lo puedes hacer con un find como el que escribí en mi anterior mensaje, haciendo uso de un -name por extensión, -o (OR) y los paréntesis para agrupar los -name

Pero hay algo que tienes que tener claro: BASH no es Java, Python, Perl, C, o el que conozcas. BASH es un lenguaje de scripting para el shell de UNIX, con lo cual la forma correcta es siempre usar las utilidades que la línea de comandos provee. En base a esto, el lenguaje tiene también limitaciones, por ejemplo:

- # Para cada fichero en vectorresultados(elemento)(extension)
BASH tiene un soporte muy básico para arrays asociativos (a partir de bash 4), si bien lo anterior es posible, la sintaxis es bastante dificultosa.

- # Definir la funcion buscarficheros (parametro directorio, vectorresultadoscarpeta)
Esto no es posible en BASH, ya que no se puede pasar vectores como parámetro a una función.

- # Si la extension del fichero esta en el vector de extensiones
No hay un "if elemento in vector" en BASH. Tendrías que programar tu propio código para verificar si un elemento pertenece al vector o no.


En sí el ejercicio me parece inútil, no veo la necesidad de luchar contra la sintaxis de un lenguaje particular solamente para implementar algo como si fuese otro lenguaje. Es claro para mí que el ejercicio lo escribió alguien que no trabaja con scripts de shell. Lo que pide (de la forma en que está pedido) es ridículamente difícil para implementar en bash comparado con escribirlo usando lo que ya tenemos disponible.