bash は関数の定義を表示できますか? 質問する

bash は関数の定義を表示できますか? 質問する

bash で bash 関数の定義を表示する方法はありますか?

例えば、関数を定義したとしますfoobar

function foobar {
    echo "I'm foobar"
}

後で実行されるコードを取得する方法はありますかfoobar?

$ # non-working pseudocode
$ echo $foobar
echo "I'm foobar"

ベストアンサー1

を使用しますtypefoobarが で定義されている場合~/.profile:

$ type foobar
foobar is a function
foobar {
    echo "I'm foobar"
}

これにより、何が定義されているかが判明しfoobar、関数として定義されている場合は、declare -fpmohandras の説明に従って呼び出されます。

関数の本体(つまりコード)だけを出力するには、次を使用しますsed

type foobar | sed '1,3d;$d'

おすすめ記事