bash에서 bash 함수의 정의를 보는 방법이 있습니까?
예를 들어 함수를 정의했다고 가정 해보십시오. foobar
function foobar {
echo "I'm foobar"
}
나중에 foobar
실행 되는 코드를 얻는 방법 이 있습니까?
$ # non-working pseudocode
$ echo $foobar
echo "I'm foobar"
답변
사용하십시오 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 -f foobar
답변
set | sed -n '/^foobar ()/,/^}/p'
이것은 기본적으로 함수 이름 foobar ()로 시작하고}로 끝나는 set 명령의 행을 인쇄합니다.
답변
set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}'
foobar는 함수 이름입니다.