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

Re: Parametros con espacios en blanco para un script



El Martes, 17 de Enero de 2006 14:27, Ricardo Frydman Eureka! escribió:
> Iñaki wrote:
> > 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.
>
> no comprendo Iñaki porque te lias tanto:
> ricardo@kebek:~ $ mkdir "Lista Debian"
> ricardo@kebek:~ $ export dir="Lista Debian"
> ricardo@kebek:~ $ touch "$dir"/aaa.txt
> ricardo@kebek:~ $ ls "$dir"
> aaa.txt
> ricardo@kebek:~ $ ricardo@kebek:~ $ cat > script.sh << "EOF"
>
> > export dir="Lista Debian"
> > ls "$dir"
> > EOF
>
> ricardo@kebek:~ $ chmod +x script.sh
> ricardo@kebek:~ $ ./script.sh
> aaa.txt
>
> Eso quieres?

Hola, el problema que tenía me lo solucionaron ayer. Era simplemente que no se 
me había ocurrido ejecutar los comandos así:

     #> comando "$variable"

Las comillas es la clave. Sin las comillas era imposible.
Realmente es lo que has hecho tú también en tu respuesta.

Gracias y saludos.







-- 
y hasta aquí puedo leer...



Reply to: