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