cat을 사용하여 파일에서 주석을 동적으로 추출

cat을 사용하여 파일에서 주석을 동적으로 추출

나는 여러 개의 bash 파일을 가지고 있으며 각 파일에는 기능과 기능을 설명하는 주석 블록이 있습니다.

예:

~/helpers/plugins/test-util.bash

# Function Name: test_util
#
# Description: .....

function test() ....

--help내 함수에 인수를 전달할 때 트리거되는 도우미 함수가 있습니다. 도움말은 각 함수 이름마다 다릅니다.

_함수 이름이 포함되고, 파일 이름도 -포함됩니다. 예: test-util.bash는 파일 이름이고 전달될 함수가 호출됩니다.test_util

내가 실행한 명령은 다음과 같습니다.

helpers test_util --help

그러면 해당 위치에서 test_util 함수가 실행됩니다.~/helpers/plugins/test-util.bash

질문:

각 파일에 첨부된 설명을 동적으로 표시하고 싶습니다. 내가 한 일은 다음과 같습니다.

1-전달된 함수 이름에서 올바른 파일 이름을 구성하고 FILENAME= echo "~/helpers/plugins/${1}.bash" | tr '_' '-'밑줄을 다음 으로 바꿉니다.

2-다음을 사용하여 댓글을 추출합니다.cat $FILENAME | grep '#' | cut -c 2- | tail -n +3

이제 내 문제는 cat 문에 있습니다. 파일 이름을 함수에 변수로 전달하고 있지만 제대로 작동하지 않는 것 같습니다.

파일 이름을 cat 명령에 직접 전달하면 명령이 터미널에서 제대로 작동합니다.

당신의 도움에 감사드립니다

답변1

당신의 임무가 정말로 그렇다면

FILENAME= echo "~/helpers/plugins/${1}.bash" | tr '_' '-'

질문에 명시된 바와 같이 이것은 올바르지 않습니다. 올바른 형태는

FILENAME="$(echo "~/helpers/plugins/${1}.bash" | tr '_' '-')"

질문의 명령은 echo ... | tr ...환경에 이름이 지정된 빈 변수를 사용하여 실행됩니다.FILENAME

관련 정보