使用 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

相关内容