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

関連情報