bash에서 bash 함수의 정의를 보는 방법이 있습니까?bash에서 함수 정의를 표시 할 수 있습니까?
예를 들어, 나는 기능 foobar
function foobar {
echo "I'm foobar"
}
나중에 foobar
실행되는 코드를 얻을 수있는 방법이 있나요 정의 말?
$ # non-working pseudocode
$ echo $foobar
echo "I'm foobar"
bash에서 bash 함수의 정의를 보는 방법이 있습니까?bash에서 함수 정의를 표시 할 수 있습니까?
예를 들어, 나는 기능 foobar
function foobar {
echo "I'm foobar"
}
나중에 foobar
실행되는 코드를 얻을 수있는 방법이 있나요 정의 말?
$ # non-working pseudocode
$ echo $foobar
echo "I'm foobar"
type
을 사용하십시오. foobar
이 예 :
$ type foobar
foobar is a function
foobar {
echo "I'm foobar"
}
이 foobar
이 무엇인지 알아 않으며,이 함수로 정의 된 경우는 pmohandras에 의해 설명 된 바와 같이 declare -f
호출하여 ~/.profile
에 정의.
set | grep -A999 '^foobar()' | grep -m1 -B999 '^}'
foobar는 함수 이름입니다.
문제 : defintion에 "{...}"의 중첩이 포함될 때마다 Bash가 허용하는 첫 번째 "}"까지만 표시됩니다. –
함수에 curly-brace 패턴을 포함하는 here-doc/here-string이 포함 된 경우에도 실패 할 수 있습니다 – Cheetah
set | sed -n '/^foobar()/,/^}/p'
이 기본적으로, 지점,
이것은 zsh에서 작동하지 않습니다. declare -f func는 거의 모든 곳에서 작동합니다. – sjsupersumit