我正在使用shdoc为我的 bash 函数生成 markdown 文件;但是,我还想将相关的 bash 函数主体以及该主体中的注释附加到由 生成的 markdown 文件中shdoc
。如何打印 bash 函数主体,同时还包括函数主体中的注释?
举一个简单的例子,假设我的所有 bash 文件都包含在一个名为的目录中src
,并且所有这些文件都以 结尾.sh
。文件中的以下函数src/foo.sh
# @description A function that does something
foo() {
# oh wow, a comment
echo "something cool"
}
现在,如果我想获取没有注释的函数主体,我可以轻松地做到这一点,declare -f
如下所示,在名为的文件中src/doc.sh
:
# assuming you are in the `src` dir and both .sh files are executable
. foo.sh
foo_doc=$(declare -f foo)
echo "$foo_doc"
但问题是foo_doc
只有函数体,因为echo "$foo_doc"
foo ()
{
echo "something cool"
}
并且没有任何注释。因此,如果我将此信息附加到由 生成的 markdown 中shdoc
,它就不是源代码的理想文档。
我认为一种方法是使用sed
来确定与感兴趣的函数相对应的行(我的 bash 函数由 和 “分隔” {
,}
但根据评论我理解还有其他方法可以声明有效的 bash 函数),然后我可以使用来仅获取这里sed
完成的那些行。