如何在bash中扩展环境变量的制表符补全?

如何在bash中扩展环境变量的制表符补全?

我的 .bash_profile 中存储了一个名为 $MODULES 的环境变量:

MODULES='/var/www/html/sites/all/modules/

当我在 bash 提示符下输入cp $MOD然后按 TAB 完成时,如何将其扩展为:

sudo cp /var/www/html/sites/all/modules/

...然后我可以立即继续使用子文件夹并使用选项卡完成该操作?现在,当我执行 TAB 补全时,它会解析为:

sudo cp \$MODULES/

...这意味着它正在当前位置查找名为“$MODULES”的目录,这显然不是我想要的。

答案1

设置相关的 Bash shell 选项,以shopt -s direxpand使用制表符补全将目录变量展开为其完整路径。将该行添加到您的中.bashrc以使该选项永久存在。

在按 Tab 键之前​​需要在变量后面附加正斜杠。

相关内容