webdevqa.jp.net

シェルで定義されている関数をリストするにはどうすればよいですか?

エイリアスを入力して、すべてのエイリアスのリストを表示できます。

ただし、関数については、.bash_profileをgrepするだけです。

それはそのファイル内のもののみを取得し、補助ファイル内または動的に定義されたものは取得しません。

現在定義されている関数を見つけるためのより便利な方法はありますか?

194
Dov

declare -F

関数名と定義は、declare組み込みコマンドの-fオプションでリストできます(Bash Builtinsを参照)。 declare-Fオプションは、関数名のみ(およびオプションでソースファイルと行番号)をリストします。

Bashリファレンスマニュアル

242

Bashシェルを想定:

typeset -f

関数をリストします。

typeset -F

関数名のみをリストします。

78
Randall Bohn
declare -F

すべての関数の名前が表示されます

type function_name

特定の関数のソースを提供します

59

declare -Fは、関数名だけでなく、実際に宣言コマンドを出力します。

$ declare -F
declare -f function1
declare -f function2

compgen -A functionを使用して、関数名のみを印刷できます。

$ compgen -A function
function1
function2
47
Lri

typesetは廃止されました。使用してください:

declare -f

または

declare -f function_name

または

type function_name
28
Robert
set | grep " ()"

代わりに grep あなたも使用できます fgrep または hgrep (hgrepは私の個人的なお気に入りで、grepですが、「grep-ped」の結果をハイライトします。

hgrepはここにあります: ACME Labs hgrep

2
AtomicKobold