请告诉我,我应该怎么做,在键入时在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>
有什么建议吗?
答案 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