programing

bash는 함수의 정의를 표시할 수 있습니까?

skycolor 2023. 4. 12. 22:00
반응형

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 | sed -n '/^foobar ()/,/^}/p'

기본적으로 set 명령에서 foobar()로 시작하여 }로 끝나는 행을 출력합니다.

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

foobar가 함수 이름입니다.

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

반응형