[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Parametros con espacios en blanco para un script



El Lunes, 16 de Enero de 2006 17:32, Xavier Reina escribió:
> On Mon, 2006-01-16 at 17:22 +0100, Iñaki wrote:
> > ---------------------------------------------
> > #!/bin/bash
> >
> > #### Así sale mal:
> > directorio="Lista\ Debian"
> > echo "Con la variable $directorio:"
> >   ls $directorio
> >
> > #### Así sale bien:
> > echo
> > echo "Directamente:"
> >   ls Lista\ Debian
> > ----------------------------------------------
> >
> > La salida de ese script es ésta:
> >
> > ----------------------------------------------
> >   #> ./script
> >
> >   Con la variable Lista\ Debian:
> >     ls: Lista\: No existe el fichero o el directorio
> >     ls: Debian: No existe el fichero o el directorio
> >
> >   Directamente:
> >     file1  file2  file3
> > ----------------------------------------------
> >
> >
> > He probado también poniendo:
> >   directorio="Lista\\ Debian"
> > y ocurre lo mismo.
> >
> >
> > El error está localizado: si una variable tiene \ para indicar un espacio
> > en un nombre de archivo entonces un comando que la emplee no lo hace
> > correctamente. ¿¿¿POR QUE???
>
> Porqué usas las comillas, prueba sin ellas:
> ~$ directorio=Lista\ Debian;echo $directorio
>
> o con comillas pero sin barra, tal como ya te han dicho:
> ~$ directorio="Lista Debian";echo $directorio
>
> > Gracias por cualquier respuesta.
>
> Espero que sea eso :)

No, ya había probado con distintas combinaciones. No es eso. La variable debe 
almacenar el valor:
  Lista\ Debian
para que al hacer el "ls" se ejecute:
  ls Lista\ Debian
que sería lo que ejecutaríamos en consola y funciona. Pero por alguna razón si 
a "ls" le pasas una variable con \ no funciona.






-- 
y hasta aquí puedo leer...



Reply to: