2009-11-06 20 views
10

Kiedy wprowadź następujący (BASH):domu (~) w ciągu argument

rdesktop -r disk:bacon=~/bacon host 

To nie powiększy się

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

Wydaje się, że "dysk:" część jest problem, który można zobaczyć w:

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

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

Jak mogę rozszerzyć tyldę?

Odpowiedz

13

Podczas gdy ~ nie rozwija się (jest używane jako specjalnie wytyczona ścieżka), robi to $HOME.

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

Ale zachowaj ostrożność podczas zmiany środowiska su!

6

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

to zrobi. Nie sprawi ci to przyjemności, ale zadziała.

+0

Czy wiesz, dlaczego to nie działa? Czytałem podręcznik i znalazłem tylko to * "Każde przypisanie zmiennej jest sprawdzane pod kątem niecytowanych przedrostków tyldy bezpośrednio po: lub pierwszym =. W tych przypadkach jest również wykonywane rozszerzanie tyldy. W konsekwencji można używać nazw plików z tyldami w przypisaniach do PATH, MAILPATH i CDPATH, a powłoka przypisuje rozszerzoną wartość. "* –

+0

Ale wygląda na to, że dysk: bekon = ~/bekon powinien działać ... –

+0

bash szuka tyldów po ":" w ciągu zastępującym. "disk: bacon = ..." nie jest prawidłowym przypisaniem zmiennych. – outis