2008/12/1 Roman Gelbort <[EMAIL PROTECTED]>:
> minombresbond escribió:
>> El Mon, 01 Dec 2008 17:05:23 -0200
>> Roman Gelbort <[EMAIL PROTECTED]> escribió:
>>
>>> Para un ejercicio de bash, tengo este enunciado:
>>>
>>> Realizar un script que permita ingresar un nombre de directorio y de
>>> como resultado el nombre de cada archivo en él y una leyenda que diga
>>> "Directorio", "Enlace" o "Archivo regular"; según corresponda.
>
> Les cuento como lo resolví... apliqué un poco de cada uno.
>
> La solución de Lukio no me funcionaba pero me dió la idea de que debería
> filtrar todas las opciones y no dejar la última como else. También que
> el orden de las preguntas del if tenían importancia (se pregunto primero
> por el archivo regular y luego por el enlace, nunca llega al enlace
> porque los considera regulares).
>
> Christian. Anda igual aunque no tenga la opción -1, sin embargo tenés
> razón en que es una manera más limpia de hacerlo.
>
> minombresbond. Creo que diste la estocada final... me faltaba declarar
> la ruta completa.
>
> Y de paso, yo le agregué el condimento que en vez de pedir que se
> ingrese el directorio, lo tome directamente como argumento... como para
> usar algo más (ya que es un ejercicio, vamos a ejercitar).
>
> El script final quedó así:
>
> #! /bin/bash
> for I in `ls -1 $1`
> do
>  if [ -d $1/$I ]
>  then
>   echo $I " Es un directorio"
>  elif [ -h $1/$I ]
>  then
>   echo $I " Es un enlace"
>  elif [ -f $1/$I ]
>  then
>   echo $I " Es un archivo regular"
>  fi
> done
> exit 0
>

Hola:

Che, como última cosa, yo lo haría de otra forma:

#! /bin/bash
read DIR
for I in $DIR/*; do
  if [ -d "$I" ]; then
    echo $I " Es un directorio"
  elif [ -f "$I" ]; then
    echo $I " Es un archivo regular"
  elif [ -L "$I" ]; then
    echo $I " Es un enlace"
  else
    echo "Archivo no reconocible"
  fi
done


La parte del for, simplemente para no ejecutar algo que no hace falta
(el bash de por si cuando uno usa un * lee el directorio muy rápido y
bien).

Y la otra es usar comillas en el $I, dado que si el directorio o
archivo tiene espacios, va a dar error.


OT: Roman, fijate el material del proyecto cursos (el que está en
latex), es bastante bueno, salvo que hay que meterle pila, pero la
idea es util (el de XML no anda, hasta donde recuerdo).





-- 
Atentamente, yo <Matías>
Y sin fumar desde (casi) el '1089515700'
http://programado.org/
Let one walk alone, commit no sin, with few wishes,
like an elephant in the forest
-- 
Para desuscribirte tenés que visitar la página
https://listas.linux.org.ar/mailman/listinfo/lugar-gral/

/* Publica y encontra trabajo relacionado con softlibre en 
http://www.usla.org.ar/modules/jobs/ */

Si tenés algún inconveniente o consulta escribí a mailto:[EMAIL PROTECTED]

Responder a