Ezequiel Chan, el  1 de mayo a las 20:58 me escribiste:
> El día 1 de mayo de 2008 20:38, Javier Persico escribió:
> > Buenas Gente,
> >
> >  Estoy intentando hacer un script para bash y tengo hecho lo siguiente:
> >
> >  for i in `ls A*`
> >  do
> >  echo $i
> >  done
> >
> >  La idea es que tome todos los archivos del directorio corriente
> >  comenzados con A y los liste.
> >
> >  Lo que me esta pasando es que cuando no hay ningun archivo por salida
> >  estandar obtengo lo siguiente:
> >
> >  ls: A*: No existe el fichero ó directorio
> >
> >  Lo que quiero evitar es que aparezca este mensaje cuando no hay archivos
> >  comenzados con A. Quisiera que por salida estandar no se muestre ningun
> >  mensaje.
> >
> >  ¿Alguno tiene una idea de como hacerlo?
> 
> Hola!
> Redirecciona la salida de mensajes de error
> El comando queda algo asi:
> 
>     ls A* 2> /dev/null

También te recomiendo que uses A* directamente en vez de `ls A*`, por
varias razones:
1) Te va a manejar bien nombres de archivo con espacios
2) Podés evitar el problema de la expansión con una opción de bash
  (nullglob)

Ejemplo:

shopt -s nullglob
for i in A*
do
        echo $i
done

Hace exactamente lo que vos querés, pero de forma más robusta =)

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
The number of wars fought between countries
That both have at least one McDonalds is zero
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a