私は友人やシェルでコマンドを解析する方法について議論していましたが、bashは次の順序でコマンドを検索すると言いました。
- エイリアスリスト
- シェルキーワードリスト
- ユーザー定義関数のリスト
- シェル組み込み関数のリスト
- PATH変数で指定されたディレクトリのリスト(左から右)。
私はコマンドを実行してエイリアスを見つけることができることを知っていますalias
。 PATH変数の内容はecho $PATH
コマンドを使用して見つけることができます。
どのコマンドを使用する必要があるかを教えてください。
- すべてのシェルキーワードのリスト
- すべてのユーザー定義関数のリスト
- シェル組み込み関数のリスト
答え1
compgen
以下でも使用できますbash
。
compgen -k
キーワードのリストcompgen -b
またはenable
組み込み関数のリストcompgen -A function
またはdeclare -F
リスト機能compgen -a
またはalias
エイリアスのリストcompgen -c
コマンドのリストcompgen -v
変数のリストcompgen -e
またはexport
エクスポートされた変数のリスト
答え2
大きな打撃を受けた場合:
man bash | grep -10 RESERVED
予約語のリスト:! Case coproc do done elif else esac fi for function if in select then Until while { } time [[ ]]
declare -F
typeset -F
内容を表示せずに関数名を表示します。enable
組み込みシェルの一覧表示注文する(私の考えではこれではないと思います。機能このように)。これもこうだman builtins
答え3
zshを使う:
PATH= type -m '*'
3.
Bashでキーワードをリストするには、次のようにします。
complete -A keyword :
その後、入力: <Tab><Tab>
組み込み関数の場合上記keyword
のように変えてbuiltin
、関数の場合推測してみます。
答え4
バッシュから
キーワード(予約語):
compgen -A keyword # or: compgen -k
関数(実行時に定義):
compgen -A function # Only names. declare -F # Only names but prefixed with `declare -f`.
文 -f# 関数定義を完了します。
組み込み機能
compgen -A builtin # Only names. enable # Names prefixed with `enable ` man builtins # Only if the correct man package is installed.
compgen
エイリアス、コマンド、変数、エクスポートなどの他のキーワードもあります。
compgen
-A
可能なオプションのリストは次のようになります。終わる:
compgen -A # and press Tab (Maybe twice vary by configuration).