Yanıtlar:
Kullanın type
. Eğer foobar
örneğin Sepetinde tanımlanır ~/.profile
:
$ type foobar
foobar is a function
foobar {
echo "I'm foobar"
}
Bu, ne foobar
olduğunu bulur ve eğer bir işlev olarak tanımlanırsa, declare -f
pmohandras tarafından açıklandığı gibi çağırır .
Fonksiyonun sadece gövdesini (yani kodu) yazdırmak için şunu kullanın sed
:
type foobar | sed '1,3d;$d'
Bir fonksiyonun tanımını bildir komutunu kullanarak bash'da görüntüleyebilirsiniz. Örneğin:
declare -f foobar
typeset -f
function
tanımı gösterir , bu yüzden istediğiniz şeyse ayrıştırmak zorunda değilsiniz.
set | sed -n '/^foobar ()/,/^}/p'
Temelde foobar () işlev adıyla başlayan ve} ile biten set komutunuzdaki satırları yazdırır.
set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}'
foobar işlev adıdır.