我有一堆 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