Odpowiedzi:
Zastosowanie type
. Jeśli foobar
jest np. Zdefiniowany w twoim ~/.profile
:
$ type foobar
foobar is a function
foobar {
echo "I'm foobar"
}
To dowiaduje się, co foobar
było, a jeśli zostało zdefiniowane jako funkcja, wywołuje declare -f
jak wyjaśniono w pmohandras.
Aby wydrukować tylko treść funkcji (tj. Kod), użyj sed
:
type foobar | sed '1,3d;$d'
Możesz wyświetlić definicję funkcji w bash za pomocą deklaracji. Na przykład:
declare -f foobar
typeset -f
function
definicję, więc nie musisz analizować, jeśli tego chcesz.
set | sed -n '/^foobar ()/,/^}/p'
To w zasadzie wypisuje linie z polecenia set zaczynając od nazwy funkcji foobar () i kończąc na}
set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}'
gdzie foobar jest nazwą funkcji.