3 votos

Cómo utilizar el cd con la variable de shell que contiene espacios

Estoy tratando de crear una variable de entorno para un camino que es largo, tiene un espacio y la sintaxis.

He intentado lo siguiente:

export temp=/Users/username/Dropbox (Personal)

Y agregado a mi .profile.

También probé:

export temp='/Users/username/Dropbox (Personal)'
export temp="/Users/username/Dropbox (Personal)"
export temp=/Users/username/Dropbox\ \(Personal\)

Ninguno de los anteriores trabajos. Mi objetivo final es tipo cd $temp o cp $temp .

12voto

Además de la primera asignación, todo el trabajo de tres en asignar el valor correcto a $temp. Pero debido a la forma bash analiza la línea de comandos, usted necesita escribir

cd "$temp"

después de hacer el trabajo (que también significa que es una buena idea usar siempre "$var" en los scripts de shell).

Podría ser más fácil en su caso para hacer un alias con

alias cdtemp='cd "/Users/username/Dropbox (Personal)"'

para el uso con cd.

Para cp usted todavía tiene que agregar el "de", sin embargo. Para evitar esto, el nombre de las carpetas sin el uso de caracteres con un significado especial para el shell o crear un enlace simbólico con ln -s ~/"Dropbox (Personal)" ~/DP.

2voto

Tal Galili Puntos 1080

Puede utilizar comodines:

export temp="/Users/username/Dropbox??Personal?"

o:

export temp="/Users/username/Dropbox*Personal*"

Ahora, cd $temp debería funcionar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X