Bash

BASH_ALIASES 不等於別名

  • January 13, 2014

我剛剛認識到(在 Debian 7 中,在 Bash 4.2.37 中)的輸出BASH_ALIASES不等於alias- 根據gnu.org 的 Bash Manual,應該是這種情況:

BASH_ALIASES

一個關聯數組變數,其成員對應於由 alias builtin 維護的內部別名列表。(請參閱 Bourne Shell Builtins)。添加到此數組的元素出現在別名列表中;取消設置數組元素會導致別名從別名列表中刪除。

我得到ls='ls --color=auto'alias一個空行BASH_ALIASES

問題:

應該是這樣嗎?這會在未來引起任何問題嗎?

由於我只是好奇並與每個命令的所有選項作鬥爭,這讓我非常頭疼,所以我真的遠離使用自製別名使事情變得更加複雜,我想知道這是否會在不久的將來成為麻煩的根源……

BASH_ALIASES是一個關聯數組,所以要顯示它:

$ declare -p BASH_ALIASES
declare -A BASH_ALIASES='([ls]="ls --color=auto" )'

或者:

$ for k in "${!BASH_ALIASES[@]}"; do printf '%s => %s\n' "$k" "${BASH_ALIASES[$k]}"; done
ls => ls --color=auto

引用自:https://unix.stackexchange.com/questions/109124