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