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

Re: Parametros con espacios en blanco para un script



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"

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...




LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com

Reply to: