2009-11-06 4 views
10

Когда я ввожу следующее (BASH):дома (~) в качестве аргумента

rdesktop -r disk:bacon=~/bacon host 

Он не расширяется до

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

Кажется «диск:» часть является как можно видеть в:

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

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

Как можно расширить тильду?

ответ

13

В то время как ~ не расширяется (используется как специально маршрутизируемый путь), $HOME делает.

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

Но будьте осторожны с изменением окружающей среды su!

6

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

будет делать это. Это не радует глаз, но это сработает.

+0

Вы знаете, почему это не работает? Я читал руководство и обнаружил только это * «Каждое присваивание переменной проверяется для некотируемых тильд-префиксов, следующих сразу за a: или first =. В этих случаях также выполняется расширение тильды. Следовательно, можно использовать имена файлов с тильдами в назначениях PATH, MAILPATH и CDPATH, а оболочка назначает расширенное значение. "* –

+0

Но это похоже на то, что диск: bacon = ~/bacon должен работать ... –

+0

bash ищет тильды после ':' в заменяющей строке. 'disk: bacon = ...' не является допустимым назначением переменной. – outis

Смежные вопросы