如果一个命令以一个未被引用的“~”(即tilde) 开头,则所有的字符到第一个未被引用的斜杠“/”, 都被认为是一个tilde-prefix。如果tilde-prefix里没有字符再被引用,则这些所有字符会被当作可能的登陆名。如果登陆名是null,则tilde会被HOME这个Shell变量给替换,否则tilde就会被HOME变量和登陆名给替换。
例如:
export PATH
="$PATH:~/testdir"
~/testdir会被扩展成 $HOME /testdir ,假如$HOME 是“/var/home/“,PATH就会添加“ /var/home/testdir”这个变量。
另外,如果tilde-prefix是"~+",则Shell变量PWD会代替“+~”。如果tilde-prefix是"~-" ,则Shell变量OLDPWD 会替换“~-”。
如果tilde-prefix中的波浪线后还带了一个数字N,则会从dir命令返回的目录堆栈中取第N个目录作为替换。
如果没有合法的登陆名或tilde失败,则命令不会受影响,不会变。
需要注意的是,每次再给变量赋值时,如果值含有“:”或“=”,则都会检查这些符号后的tilde-prefix,并进行替换。比如前面举的例子,就属于这一类。