按下 Tab 键时 Bash 不会扩展变量

按下 Tab 键时 Bash 不会扩展变量

在 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
    

相关内容