Shell

查找 shell 關鍵字、內置函式和使用者定義函式的命令是什麼?

  • January 11, 2019

我正在和我的朋友討論如何在 shell 中解析命令,他告訴我 bash 按以下順序搜尋命令

  1. 別名列表
  2. shell 關鍵字列表
  3. 使用者定義函式列表
  4. shell 內置函式列表
  5. PATH 變數中指定的目錄列表,從左到右。

我知道可以通過發出alias命令找到別名。可以使用echo $PATH命令找到 PATH 變數內容。

你能告訴我我需要使用哪些命令嗎?

  1. 列出所有 shell 關鍵字
  2. 列出所有使用者定義的函式
  3. 到 shell 內置函式列表

在 Bash 中:

  1. man bash | grep -10 RESERVED列出保留字:

!case coproc do done elif else esac fi for function if in select then until while { } time$$ [ $$]

  1. declare -Ftypeset -F顯示沒有內容的函式名稱。
  2. enable列出內置的 shell命令(我不認為這些是這樣的函式)。也是如此man builtins

您還可以compgen使用bash

  • compgen -k列出關鍵字
  • compgen -benable列出內置函式
  • compgen -A functiondeclare -F列出函式
  • compgen -aalias列出別名
  • compgen -c列出命令
  • compgen -v列出變數
  • compgen -eexport列出導出的變數

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