typeset -f
すべての関数とその定義はksh93にリストされています。
$ f(){ :; }
$ typeset -f
f(){ :; }
新しい特徴は、改行なしで定義された関数が同じ方法でリストされることです。
$ g(){ :; }; h(){ :; }
$ k(){ :; }
$ typeset -f
f(){ :; }
g(){ :; };h(){ :; }
k(){ :; }
すべての関数名を1行に1つずつ一覧表示する方法はありますか?
失敗:これらの定義を別々の行に分割する方法はありますか?
私の言葉は、すべてのシェル解析を実行せずに関数の終わり(または開始)を見つけることです。
typeset -f functionname
私は現在、スクリプトの実行環境で定義されているすべての関数に対してこれを実行できるようにしたいと思います。
答え1
マニュアルで解決策を見つけました。
$ typeset +f
f()
g()
h()
k()
+fを指定すると、関数名を含む行が表示され、その後に関数が定義されているファイル(存在する場合)の行番号とパス名を含むシェルコメントが表示されます。