Bash 参数中的主目录扩展(~)

Bash 参数中的主目录扩展(~),bash,expansion,tilde,home-directory,Bash,Expansion,Tilde,Home Directory,当我输入以下内容(BASH)时: 它不会扩展到 rdesktop -r disk:bacon=/home/me/bacon host “磁盘:”部分似乎是问题所在,如图所示: $ echo bacon=~/bacon disk:bacon=~/bacon bacon=/home/me/bacon disk:bacon=~/bacon 如何使tilde扩展?rdesktop-r disk:bacon=$(echo~/bacon)主机 我会的。它不会让人赏心悦目,但会起作用。虽然~不会扩展(它

当我输入以下内容(BASH)时:

它不会扩展到

rdesktop -r disk:bacon=/home/me/bacon host
“磁盘:”部分似乎是问题所在,如图所示:

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

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

如何使tilde扩展?

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

我会的。它不会让人赏心悦目,但会起作用。

虽然~不会扩展(它被用作路径的特殊路由),
$HOME会扩展

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

但是要小心环境的变化
su

你知道为什么它不起作用吗?我一直在读手册,只找到了这个“每个变量赋值都会检查:或第一个=,后面是否有未加引号的波浪号前缀。”。在这些情况下,也会执行tilde扩展。因此,在分配给PATH、MAILPATH和CDPATH时,可以使用带波浪号的文件名,shell分配扩展值。“bash在替换字符串中的“:”之后查找波浪线。”disk:bacon=…'不是有效的变量分配。特别是,'disk:bacon=…'不是变量分配,因为它不在命令的有效部分(变量分配必须在命令名之前),并且“:”不是变量名的有效字符。
rdesktop -r disk:bacon=$HOME/bacon host