IT story

bash는 함수의 정의를 보여줄 수 있습니까?

hot-time 2020. 4. 9. 08:08
반응형

bash는 함수의 정의를 보여줄 수 있습니까?


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 -fpmohandras가 설명하는대로 호출합니다 .

함수 본문 (예 sed: 코드) 만 인쇄하려면 다음을 사용하십시오 .

type foobar | sed '1,3d;$d'

선언을 사용하여 bash에서 함수 정의를 표시 할 수 있습니다. 예를 들면 다음과 같습니다.

declare -f foobar

set | grep -A999 '^foobar ()' | grep -m1 -B999 '^}'

foobar는 함수 이름입니다.


set | sed -n '/^foobar ()/,/^}/p'

이것은 기본적으로 함수 이름 foobar ()로 시작하고}로 끝나는 set 명령의 행을 인쇄합니다.

참고 URL : https://stackoverflow.com/questions/6916856/can-bash-show-a-functions-definition

반응형