1

a.shfnameという名前のファイルでbash関数を定義します。

fname(){
  echo "Foo"
}

このように関数を含めることができます。

source a.sh

その後fname、シェルでを呼び出すことができます。含まれているすべての機能を表示する方法があるのだろうか。

ありがとう!

4

2 に答える 2

3

宣言されたすべての関数と本体を一覧表示するには、次のコマンドを実行できます。

set

また

declare -f

関数名のみが必要な場合:

declare -f -F 

また

declare -f -F | cut -d " " -f3 

typeset2013年に廃止されることに注意してください

そしてhttp://wiki.bash-hackers.org/scripting/obsoleteからtypeset

これは上記と密接に関連しており、多くの場合、一緒に使用する必要があります。タイプセットは主にkshとの互換性のために存在しますが、Bashでは「非推奨」とマークされています(私はこれに完全には同意しませんが)。将来の互換性は保証できないため、これはある程度理にかなっています。互換性を得るには、他のシェルの非POSIX機能とその違いを理解する必要があります。タイプセットの代わりにdeclareを使用すると、「bashのみ」であるという意図が強調され、他のすべての場所で確実に機能しなくなります(運が良ければzshを除く)。この問題は、Dashとローカルビルトインに対するDebianポリシー要件によってさらに複雑になりますが、それ自体はBashや他のシェルと完全には互換性がありません。

于 2013-03-12T12:12:20.803 に答える
0

typeset -f

に関するドキュメントtypeset

于 2013-03-12T12:12:51.630 に答える