Ответы:
Использование type
. foobar
Например, если это определено в вашем ~/.profile
:
$ type foobar
foobar is a function
foobar {
echo "I'm foobar"
}
Это выясняет, что foobar
было, и если это было определено как функция, которую она вызывает, declare -f
как объяснено pmohandras.
Чтобы распечатать только тело функции (то есть код), используйте sed
:
type foobar | sed '1,3d;$d'
Вы можете отобразить определение функции в bash с помощью команды Declare. Например:
declare -f foobar
typeset -f
function
определение, так что вам не нужно анализировать, если это то, что вы хотите.
set | sed -n '/^foobar ()/,/^}/p'
Это в основном печатает строки из вашей команды set, начиная с имени функции foobar () и заканчивая}
set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}'
с foobar, являющимся именем функции.