0

请告诉我,我应该怎么做,在我键入时在 bash 命令行中插入变量名?

$A = ~/tmp/ 在 tmp 文件夹中,我有 tmp1 和 tmp2 文件夹。

我输入:cd $A<TAB>没有任何事情发生。如果我添加额外的 / 和类型cd $A/tmp1,它会在末尾添加额外的空间cd $A/tmp1<space>

我想要以下行为: cd $A<TAB>=====>cd ~/tmp/<without additional space>


有什么建议么?

4

2 回答 2

2

你需要说:

shopt -s direxpand

现在说:

cd $A/TAB

(注意/之前的TAB)会在不增加空间的情况下显示目录。

从手册:

direxpand
         If  set,  bash replaces directory names with the results
         of word expansion when performing  filename  completion.
         This  changes  the contents of the readline editing buf‐
         fer.  If not set, bash attempts  to  preserve  what  the
         user typed.

此外,不要通过说来设置变量:

A="~/tmp"

或者

A=~/tmp

A="${HOME}/tmp"
于 2013-09-06T12:13:54.193 回答
0

首先,您不希望=. bash其次,我对上述方式没有问题。尝试:

complete -r
于 2013-09-06T12:13:15.293 回答