나는 여러 개의 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