BASH_ALIASES 不等于别名

erc*_*rch 2 shell bash alias variable

我刚刚认识到(在 Debian 7 中,在 Bash 4.2.37 中)的输出BASH_ALIASES不等于alias- 根据gnu.org 的 Bash 手册,应该是这种情况:

BASH_ALIASES

一个关联数组变量,其成员对应于别名内置程序维护的内部别名列表。(请参阅 Bourne Shell 内置程序)。添加到这个数组的元素出现在别名列表中;取消设置数组元素会导致从别名列表中删除别名。

我得到ls='ls --color=auto'foralias只是一个空行BASH_ALIASES

题:

应该这样吗?这会在未来造成任何问题吗?

由于我只是好奇并与每个命令的所有选项作斗争,这让我很头疼,所以我真的与自制别名使事情变得更加复杂保持相当的距离,我想知道这是否会在不久的将来成为麻烦的根源......

Sté*_*las 6

BASH_ALIASES 是一个关联数组,因此要显示它:

$ declare -p BASH_ALIASES
declare -A BASH_ALIASES='([ls]="ls --color=auto" )'
Run Code Online (Sandbox Code Playgroud)

或者:

$ for k in "${!BASH_ALIASES[@]}"; do printf '%s => %s\n' "$k" "${BASH_ALIASES[$k]}"; done
ls => ls --color=auto
Run Code Online (Sandbox Code Playgroud)