2009-11-06 5 views
10

Cuando entro en el siguiente (BASH):casa expansión directorio (~) dentro de un argumento

rdesktop -r disk:bacon=~/bacon host 

No se expande a

rdesktop -r disk:bacon=/home/me/bacon host 

Parece el "disco:" parte es la problema como se puede ver en:

$ echo bacon=~/bacon disk:bacon=~/bacon 

bacon=/home/me/bacon disk:bacon=~/bacon 

¿Cómo puedo hacer que Tilde se expanda?

Respuesta

13

Mientras ~ no se expande (se usa como enrutado especialmente de la ruta), $HOME hace.

rdesktop -r disk:bacon=$HOME/bacon host 

Pero tenga cuidado con el medio ambiente cambiante su!

6

rdesktop -r disk:bacon=$(echo ~/bacon) host

lo hará. No agradará a los ojos, pero funcionará.

+0

¿Sabes por qué no funciona? He estado leyendo el manual y he encontrado solo esto * "Cada asignación de variable se comprueba para prefijos de tilde sin comillas inmediatamente después de: o el primero =. En estos casos, también se realiza la expansión de tilde. En consecuencia, se pueden usar nombres de archivo con tildes en asignaciones a PATH, MAILPATH y CDPATH, y el shell asigna el valor expandido. "* –

+0

Pero a partir de eso, parece que el disco: bacon = ~/bacon debería funcionar ... –

+0

bash busca tildes después de ':' en la cadena de reemplazo. 'disk: bacon = ...' no es una asignación de variable válida. – outis

Cuestiones relacionadas