You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取含注释的Bash函数体并追加至shdoc生成的文档

用Sed提取包含注释的Bash函数体

要从Bash脚本中提取包含内部注释的指定函数体,可以用Sed的范围匹配功能,直接定位函数的起始和结束行,保留所有中间内容(包括注释)。

基础命令(匹配标准函数定义)

假设要提取src/foo.sh中的foo函数,函数定义为foo() {格式:

sed -n '/^foo() {/,/^[[:space:]]*}$/p' src/foo.sh

兼容function关键字的定义

如果函数是用function foo {格式定义的,调整起始匹配规则:

sed -n '/^function foo {/,/^[[:space:]]*}$/p' src/foo.sh

命令参数说明

  • -n:让Sed只输出匹配到的行,避免打印脚本其他无关内容
  • /pattern1/,/pattern2/p:指定匹配范围——从符合pattern1的行开始,到符合pattern2的行结束,p表示打印这个范围内的所有行
  • ^[[:space:]]*}$:兼容函数闭合大括号前有缩进空格的情况,[[:space:]]*匹配任意数量的空格或制表符

示例效果

假设src/foo.sh内容如下:

#!/bin/bash

# 全局注释
foo() {
    # 内部注释:打印基础问候
    echo "Hello World"
    # 注释:定义本地变量
    local user="Guest"
    echo "Hi, $user"
}

bar() {
    echo "This is bar function"
}

执行提取命令后,输出结果会完整保留函数内部的注释:

foo() {
    # 内部注释:打印基础问候
    echo "Hello World"
    # 注释:定义本地变量
    local user="Guest"
    echo "Hi, $user"
}

内容的提问来源于stack exchange,提问作者Jared

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:19:56