在 Ubuntu 18.04 的早期版本中,当我按下键时,Bash 中的变量会展开Tab。但在 Ubuntu 20.04(使用 bash 5.0.16)中,变量不会展开。相反,$
变量前的美元符号前面会加一个反斜杠。
例如,假设我有一个变量MY_DIRECTORY
:
export MY_DIRECTORY=/path/to/a/folder
现在当我写这样的东西时:
ls $MY_DIRECTORY<Tab key>
我得到:
ls \$MY_DIRECTORY
如您所见,变量没有扩展到所需的路径。这有什么问题?
答案1
在 Bash 中扩展变量有以下两种方法:
每当您想要扩展变量时,请使用Ctrl+ Alt+键盘快捷键。E
例如,如果我在终端中写入:
$LANG $BASH
然后按快捷键,上述操作将两个变量扩展为:
en_US.UTF-8 /usr/bin/bash
启用
shopt
内置的direxpand
通过在终端中运行选项:shopt -s direxpand
现在,如果你输入:
ls $MY_DIRECTORY/<Tab key>
它将扩展为:
ls /path/to/a/folder/
要
direxpand
为所有终端会话启用该选项,请手动或通过运行以下命令将其附加到文件shopt -s direxpand
中:~/.bashrc
echo "shopt -s direxpand" >> ~/.bashrc