Câu trả lời:
Sử dụng type
. Nếu foobar
được định nghĩa ví dụ trong ~/.profile
:
$ type foobar
foobar is a function
foobar {
echo "I'm foobar"
}
Điều này không tìm ra cái gì foobar
đã được, và nếu nó được định nghĩa là một hàm thì nó gọi declare -f
như được giải thích bởi pmohandras.
Để chỉ in phần thân của hàm (tức là mã), hãy sử dụng sed
:
type foobar | sed '1,3d;$d'
Bạn có thể hiển thị định nghĩa của hàm trong bash bằng cách sử dụng khai báo. Ví dụ:
declare -f foobar
typeset -f
function
định nghĩa, vì vậy bạn không phải phân tích nếu đó là những gì bạn muốn.
set | sed -n '/^foobar ()/,/^}/p'
Điều này về cơ bản in các dòng từ lệnh set của bạn bắt đầu bằng tên hàm foobar () và kết thúc bằng}
set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}'
với foobar là tên hàm.