한 줄에 하나씩 모든 함수 이름만 나열하는 방법

한 줄에 하나씩 모든 함수 이름만 나열하는 방법

typeset -f모든 함수와 해당 정의는 ksh93에 나열되어 있습니다.

$ f(){ :; }

$ typeset -f
f(){ :; }

새로운 특징은 개행 없이 정의된 함수가 같은 방식으로 나열된다는 것입니다.

$ g(){ :; }; h(){ :; }
$ k(){ :; }

$ typeset -f
f(){ :; }
g(){ :; };h(){ :; }
k(){ :; }

모든 함수 이름을 한 줄에 하나씩 나열하는 방법이 있습니까?

실패: 이러한 정의를 별도의 줄로 구분하는 방법이 있습니까?
내 말은 모든 쉘 구문 분석을 수행하지 않고 함수 끝(또는 시작)을 찾는 것입니다.

typeset -f functionname나는 현재 스크립트의 실행 환경에 정의된 모든 함수에 대해 이 작업을 수행 할 수 있기를 원합니다 .

답변1

매뉴얼에서 해결책을 찾았습니다.

$ typeset +f
f()
g()
h()
k()

+f를 지정하면 함수 이름이 포함된 줄이 표시되고 그 뒤에 함수가 정의된 파일(있는 경우)의 줄 번호와 경로 이름이 포함된 쉘 주석이 표시됩니다.

관련 정보