Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: DejarDeSerLammerYa! en 23 Mayo 2012, 23:13 pm



Título: Script Básico en Bash (Shell) Ayuda!
Publicado por: DejarDeSerLammerYa! en 23 Mayo 2012, 23:13 pm
Hola a todos, ya hacía que no preguntaba nada hehe...
Al grano, el caso es que necesito crear un script en bash (para OpenSuse) que, al ejecutarlo tengas que escribir un parámetro, el cual será un directorio, y luego muestre todos los elementos que contenga ese directorio y al lado de cada elemento indique si es un archivo o es un directorio. No sé si me he explicado bien... por ejemplo:

sh script home
documentos Es un directorio
config Es un fichero
etc Es un directorio

De momento he hecho algo, pero no he podido probarlo aún, el caso es que tengo que tenerlo para cuanto antes, pues mi nota media depende de este ejercicio de clase... y al menos si me pudieseis corregir si hay algún fallo en esto que hice os lo agradecería muchísimo!
Mi script:

Código:

#!/bin/bash
if  [ $1 -ne 1 ]
then
echo No introduciste un directorio
else
for Contenido in `ls $1`
do
if [ -d Contenido ]
then
echo `Contenido` es un directorio
else
echo `Contenido` es un ficheiro
fi
done
fi






Como ya he dicho, no lo he podido probar, puesto que en casa no tengo el OpenSuse instalado, mañana si lo probaré, y sé que va a fallar, seguramente vamos... así que ya lo posteo a ver si me pueden ayudar a detectar fallos.

Muchas gracias! De veras.


Título: Re: Script Básico en Bash (Shell) Ayuda!
Publicado por: DejarDeSerLammerYa! en 25 Mayo 2012, 22:53 pm
Up  :huh:


Título: Re: Script Básico en Bash (Shell) Ayuda!
Publicado por: Runex en 26 Mayo 2012, 01:24 am
Con éste código a mi me funciona perfectamente:


Código
  1. #!/bin/bash
  2. for Contenido in `ls $1`
  3. do
  4. if [ -d $Contenido ]
  5. then
  6. echo $Contenido es un directorio
  7.  
  8. else
  9. echo $Contenido es un fichero
  10.  
  11. fi
  12. done
  13.  
  14.  
  15. echo "Script Finalizado By Rune :)"
  16. sleep 50

Si no le pasas ningún parámetro te lista los archivos del directorio en el cual se encuentra el archivo, de lo contrario mostrará los del directorio que le indiques :).

El único "fallo" que veo en tu código es que llamas a la variable Contenido usando ` cuando se requiere $.

Un saludo :)


Título: Re: Script Básico en Bash (Shell) Ayuda!
Publicado por: DejarDeSerLammerYa! en 27 Mayo 2012, 13:04 pm
  :o Muchísimas gracias!!!!  :)  :)  :)  ;-)