在路径中插入变量(bash命令行)

时间:2013-09-06 12:00:39

标签: linux bash bash-completion

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

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

我输入:cd $A<TAB>并且什么也没发生。 如果我添加其他/并输入cd $A/tmp1,则会在末尾添加额外的空格cd $A/tmp1<space>

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


有什么建议吗?

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

首先,您不希望=两侧有任何空格。其次,bash表现出上述方式我没有问题。尝试:

complete -r