Re: Parametros con espacios en blanco para un script [SOLUCIONADO]
El Lunes, 16 de Enero de 2006 18:06, David Pradas escribió:
> El ls lo debes hacer con comillas dobles para que te interprete el
> contenido de la variable $directorio como una cadena:
>
> directorio='Lista Debian'
> ls "$directorio"
¡Sí, señor, eso es!
Y perdona, veo que ya me habías dado antes esta solución, pero no la miré
bien, pensé que ya la había probado pero no m había fijado en las comillas de
"$directorio".
¡ Muchas gracias !
> Iñaki <ibc2@euskalnet.net> escribió: El Lunes, 16 de Enero de 2006 17:22,
Iñaki escribió:
> > Tengo un directorio con un espacio en blanco: "Lista Debian".
> >
> > Me gustaría saber cómo le puedo pasar ese directorio como parámetro a un
> > script de Bash para que opere con él. El problema de hecho es hacer que
> > un comando reconozca los espacios en blanco dentro de una variable.
> >
> > El script es este (es sólo para solucionar este problema):
> >
> > ---------------------------------------------
> > #!/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???
> >
> >
> > Gracias por cualquier respuesta.
>
> Hola, se me ha ocurrido una forma más fácil de que se vea el problema.
> Olvidaros del script:
>
> - Creamos un directorio con un espacio en medio:
> mkdir Lista\ Debian
>
> - Creamos archivos dentro:
> touch Lista\ Debian/file1
> touch Lista\ Debian/file2
>
> - Ejecutamos esto y vemos que funciona:
> ls Lista\ Debian
> file1 file2 (funciona)
>
> - Lo probamos con variable "directorio":
> directorio="Lista Debian"
> ls $directorio
> ls: Lista: No existe el fichero o el directorio
> ls: Debian: No existe el fichero o el directorio
>
> - Probamos con otras combinaciones:
> directorio=Lista Debian
> directorio=Lista\ Debian
> directorio=Lista\\ Debian
> directorio='Lista Debian'
> directorio='Lista\ Debian'
>
> Pero con ninguna funciona. ¿Alguna idea?
>
>
> PD: He probado todas las imaginables, si a alguien se le ocurre alguna
> forma le pido por favor que antes lo compruebe siguiendo los pasos
> anteriores.
>
>
> Gracias a todos y un saludo.
--
y hasta aquí puedo leer...
Reply to: