2009-11-06 10 views
10

Wenn ich die folgende (BASH) eingeben:Home-Verzeichnis Expansion (~) in einem Argument

rdesktop -r disk:bacon=~/bacon host 

Es erweitern sich nicht auf

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

es die "Scheibe" scheint Teil ist die Problem wie in:

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

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

Wie kann ich Tilde erweitern?

Antwort

13

Während ~ nicht expandiert (es wird als speziell geroutete Pfad verwendet), $HOME tut.

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

Aber mit umwelt wechselnden su vorsichtig sein!

6

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

wird es tun. Es wird dem Auge nicht gefallen, aber es wird funktionieren.

+0

Wissen Sie, warum es nicht funktioniert? Ich habe das Handbuch gelesen und habe nur dieses gefunden * "Jede Variablenzuweisung wird unmittelbar nach a: oder dem ersten = auf nicht-angekreuzte Tilde-Präfixe geprüft. In diesen Fällen wird auch eine Tilde-Erweiterung durchgeführt. Folglich kann man Dateinamen verwenden mit Tilden in Zuordnungen zu PATH, MAILPATH und CDPATH, und die Shell weist den erweiterten Wert zu. "* –

+0

Aber von diesem sieht es aus, als ob die Festplatte: bacon = ~/bacon funktionieren sollte ... –

+0

bash sucht nach Tilden nach ':' in der Ersetzungszeichenfolge. 'disk: speck = ...' ist keine gültige Variablenzuweisung. – outis