ccg-workflow Shell 技能指南:Bash 脚本自动化、系统管理与多模型协作实战
【免费下载链接】ccg-workflow多模型协作工作流引擎 — /ccg:go 一个命令AI 自动分析意图、选择策略、编排 Codex Gemini Claude 协作执行项目地址https://gitcode.com/gh_mirrors/cc/ccg-workflow点击查看免费下载导读本文基于 ccg-workflow 开源仓库中的领域技能文档 templates/skills/domains/development/shell.md 展开系统梳理 Shell/Bash 脚本开发的完整知识体系从变量、数组、条件判断、循环、函数等语言基础到带参脚本、日志函数、错误处理等可直接落地的脚本模板再到文本处理、文件操作、网络诊断等常用命令组合与工程最佳实践。读完本文你将掌握一套可直接复制运行的生产级 Bash 脚本范式并理解该技能文档如何在 ccg-workflow 的多模型协作工作流中通过关键词路由自动注入到 AI 上下文服务于日常系统管理与自动化任务。一、技能文档在 ccg-workflow 中的定位与触发机制1.1 frontmatter 声明与触发关键词shell.md是 ccg-workflow 技能体系development开发语言能力领域下的 7 个语言技能之一其文档头部通过 YAML frontmatter 声明了技能身份与触发条件--- name: shell description: Shell 脚本开发。Bash、自动化、系统管理。当用户提到 Shell、Bash、脚本、自动化、Linux命令时使用。 ---这段 frontmatter 不是装饰性的它直接驱动着整个技能发现机制。src/utils/skill-registry.ts 中的parseFrontmatter会递归扫描templates/skills/下所有SKILL.md解析出name、description、user-invocable等元数据collectSkills依据目录结构推断技能类别domains对应domain分类并进一步判断该技能是「脚本型」含scripts/目录还是「知识型」仅文档——shell.md属于**纯知识型knowledge**技能本身不含可执行脚本其价值在于为 AI 提供权威的 Bash 领域知识。1.2 从触发词到上下文注入的完整链路当用户在对话中提到 Shell、Bash、脚本、自动化、Linux 命令等关键词时ccg-workflow 会走两条并行的知识注入路径静态规则路由templates/rules/ccg-skill-routing.md 的「Development Domain」路由表明确约定当用户处理 Shell/Bash 语言时AI 应读取~/.claude/skills/ccg/domains/development/shell.md获取语言级最佳实践并强调「Skill files are authoritative」——当技能文件与训练数据冲突时以技能文件为准。动态 Hook 注入templates/hooks/skill-router.js 注册在UserPromptSubmit事件上对每条用户消息做关键词匹配命中后读取技能文件前 120 行以ccg-domain-knowledge标签注入当前会话上下文供多模型协作时直接引用。1.3 安装路径与更新方式shell.md随 npm 包分发安装时由 src/utils/installer.ts 的installSkillFiles将templates/skills/整树复制到~/.claude/skills/ccg/默认跳过domains/security/目录以规避杀毒软件误报。因此安装后的技能文件路径为~/.claude/skills/ccg/domains/development/shell.md更新方式为重新执行npx ccg-workflow或npx ccg-workflow update。仓库的 src/utils/tests/skills-hygiene.test.ts 会对发布内容做卫生检查确保技能文件不携带绝对主目录路径、凭据形状的裸 token 与公网 IP保证文档可作为知识安全地注入上下文。二、Bash 基础语法精讲2.1 变量与字符串Bash 中变量赋值时等号两侧不能有空格字符串默认无引号包裹readonly声明只读常量。字符串操作是日常脚本的高频需求#!/bin/bash # 变量 nameAlice age25 readonly PI3.14 # 字符串操作 strHello World echo ${#str} # 长度: 11 echo ${str:0:5} # 截取: Hello echo ${str/World/Bash} # 替换: Hello Bash echo ${str,,} # 小写: hello world echo ${str^^} # 大写: HELLO WORLD # 默认值 echo ${var:-default} # 如果 var 未设置返回 default不改变 var echo ${var:default} # 如果 var 未设置设置并返回 default会改变 var值得说明的是${var:-default}与${var:default}的区别前者只做「读时兜底」变量本身保持未设置后者会真正给变量赋值。在需要判断「变量是否被外部传入」时例如环境变量覆盖默认配置推荐使用:-形式避免副作用。2.2 数组# 索引数组 arr(a b c) echo ${arr[0]} # 第一个元素 echo ${arr[]} # 所有元素 echo ${#arr[]} # 数组长度 # 遍历务必加引号防止元素含空格时被分词 for item in ${arr[]}; do echo $item done # 关联数组 (Bash 4) declare -A map map[name]Alice map[age]25 echo ${map[name]}遍历时使用${arr[]}加引号是 Bash 的经典陷阱不加引号时数组元素若包含空格或通配符会被再次拆分或展开导致逻辑错误。2.3 条件判断Bash 的条件判断区分为字符串、数值与文件三类测试统一建议使用[[ ]]而非[ ]# 字符串比较 if [[ $str1 $str2 ]]; then echo Equal fi # 数值比较-eq/-ne/-lt/-le/-gt/-ge if [[ $a -eq $b ]]; then echo Equal; fi if [[ $a -lt $b ]]; then echo Less; fi if [[ $a -gt $b ]]; then echo Greater; fi # 文件测试 if [[ -f $file ]]; then echo File exists; fi if [[ -d $dir ]]; then echo Directory exists; fi if [[ -r $file ]]; then echo Readable; fi if [[ -w $file ]]; then echo Writable; fi if [[ -x $file ]]; then echo Executable; fi # 逻辑运算 if [[ $a -gt 0 $b -gt 0 ]]; then echo Both positive; fi if [[ $a -gt 0 || $b -gt 0 ]]; then echo At least one positive; fi使用[[ ]]的优势在于内部支持/||逻辑运算、/!模式匹配与正则~且变量即使为空也不会触发语法错误。2.4 循环# for 循环花括号展开 通配符展开 for i in {1..5}; do echo $i done for file in *.txt; do echo Processing $file done # while 循环逐行读取文件-r 防止反斜杠转义 while read -r line; do echo $line done file.txt # until 循环条件为假时执行与 while 语义相反 count0 until [[ $count -ge 5 ]]; do echo $count ((count)) donewhile read -r line是逐行处理文件的标准姿势-r保留行内反斜杠 file.txt重定向避免在子 Shell 中丢失变量。((count))为算术运算语法等价于count$((count1))。2.5 函数# 定义函数 greet() { local name$1 echo Hello, $name! return 0 } # 调用 greet Alice result$? # 获取返回值0 成功非 0 失败 # 返回字符串利用命令替换捕获 stdout get_date() { echo $(date %Y-%m-%d) } today$(get_date)函数内建议用local声明局部变量避免污染全局命名空间Bash 函数的「返回值」本质是退出码0–255若需返回字符串惯例是用echo输出 命令替换$(...)捕获。三、实用脚本模板3.1 带参数的标准 CLI 脚本这是生产环境最通用的脚本骨架set -euo pipefail开启严格模式usage()输出帮助whilecase解析长短选项#!/bin/bash set -euo pipefail usage() { cat EOF Usage: $(basename $0) [OPTIONS] input Options: -o, --output FILE Output file -v, --verbose Verbose mode -h, --help Show this help EOF exit 1 } # 默认值 OUTPUT VERBOSEfalse # 解析参数 while [[ $# -gt 0 ]]; do case $1 in -o|--output) OUTPUT$2 shift 2 ;; -v|--verbose) VERBOSEtrue shift ;; -h|--help) usage ;; -*) echo Unknown option: $1 usage ;; *) INPUT$1 shift ;; esac done # 检查必需参数 if [[ -z ${INPUT:-} ]]; then echo Error: Input is required usage fi # 主逻辑 main() { if $VERBOSE; then echo Processing $INPUT... fi # 处理逻辑 } main要点拆解set -euo pipefail三连-e命令出错即退出、-u使用未定义变量即报错、pipefail让管道中任一命令失败都导致整体失败$#为剩余参数个数shift 2一次消费「选项 值」两个位置参数${INPUT:-}的写法保证-u模式下未传入位置参数也不会报「unbound variable」用独立main函数收口主逻辑便于trap与模块化。3.2 日志函数带颜色的分级日志是脚本可观测性的基础。注意 ANSI 颜色码需配合echo -e才能解析转义且错误日志要重定向到 stderr2#!/bin/bash # 颜色定义 RED\033[0;31m GREEN\033[0;32m YELLOW\033[1;33m NC\033[0m # No Color log_info() { echo -e ${GREEN}[INFO]${NC} $1 } log_warn() { echo -e ${YELLOW}[WARN]${NC} $1 } log_error() { echo -e ${RED}[ERROR]${NC} $1 2 } die() { log_error $1 exit 1 }die()是「记录致命错误并退出」的组合封装可在脚本任何位置直接die 配置文件不存在快速失败。颜色输出在 CI 无 TTY 环境下会保留转义字符可在非交互检测后关闭颜色。3.3 错误处理与临时文件清理结合trap实现「出错即报告行号」与「退出即清理临时文件」双保险#!/bin/bash set -euo pipefail # 错误处理任何命令失败时报告出错行号 trap echo Error on line $LINENO; exit 1 ERR # 清理函数脚本正常/异常退出时都删除临时文件 cleanup() { rm -f $TEMP_FILE } trap cleanup EXIT TEMP_FILE$(mktemp)trap ... ERR配合set -e任一命令返回非零即打印行号定位问题trap cleanup EXIT无论脚本正常结束还是被exit中断都会执行清理避免mktemp产生的临时文件残留mktemp生成唯一临时文件比硬编码/tmp/xxx更安全避免权限与冲突问题。四、常用命令组合速查4.1 文本处理铁三角grep / sed / awk# grep - 搜索 grep -r pattern . grep -v exclude # 排除匹配行 grep -i case insensitive # 忽略大小写 grep -E regex # 扩展正则 # sed - 替换 sed s/old/new/g file sed -i s/old/new/g file # 原地修改-i 直接写回文件 sed -n 10,20p file # 仅打印 10-20 行 # awk - 列处理 awk {print $1} file # 打印第一列 awk -F: {print $1} /etc/passwd # 指定冒号分隔符 awk NR1 {sum$1} END {print sum} file # 跳过表头累加第一列 # 组合经典管道流水线 cat file | grep pattern | awk {print $2} | sort | uniq -c三个工具的分工边界清晰grep 负责过滤行sed 负责行内替换/区间打印awk 负责按列计算与汇总。awk NR1 {sum$1} END {print sum}这类「跳过表头 累加 结尾输出」的写法是处理日志统计的万能公式。4.2 文件操作# 查找 find . -name *.txt find . -type f -mtime -7 # 7 天内修改过的文件 find . -size 100M # 大于 100M 的文件 find . -name *.log -exec rm {} \; # 查找并删除 # 批量重命名参数扩展去掉 .txt 后缀再加 .md for f in *.txt; do mv $f ${f%.txt}.md done # 批量处理xargs 把 find 结果逐条喂给 grep find . -name *.py | xargs grep TODO${f%.txt}是参数扩展的「去后缀」操作%从右匹配最短配合for循环即可实现任意批量重命名。find -exec与xargs都能批量执行注意文件名含空格时优先使用find ... -print0 | xargs -0的空字节分隔方案。4.3 网络诊断# curl - HTTP 请求 curl -s https://api.example.com/data curl -X POST -H Content-Type: application/json -d {key:value} URL curl -o output.file URL # 端口检查 nc -zv host 80 # 快速探测端口连通性-z 不发送数据 ss -tulpn | grep :80 # 查看本机监听端口与进程ss是netstat的现代替代品-tTCP、-uUDP、-l仅监听、-p显示进程、-n数字显示grep :80可快速定位占用端口的服务。五、最佳实践清单#!/bin/bash # 1. 使用 set 选项开启严格模式尽早暴露错误 set -euo pipefail # 2. 引用变量几乎所有场景都加双引号防止分词与通配展开 echo $variable # 3. 使用 [[ ]] 而非 [ ]更强大的模式匹配与逻辑运算 if [[ -f $file ]]; then ... fi # 4. 使用 $() 而非反引号可嵌套、语义清晰、转义更少 result$(command) # 5. 使用 local 声明局部变量避免污染全局命名空间 func() { local varvalue } # 6. 检查命令是否存在执行前用 command -v 探测 command -v git /dev/null || die git not found # 7. 使用 shellcheck 静态检查 # shellcheck script.sh逐条解读set -euo pipefail是「三条命」式保险已成为现代 Bash 脚本的事实标准不加引号的$variable在值为空或含空格时会静默裂变是排查难度最高的隐蔽 Bug 源[[ ]]支持~正则、/||且对空值更宽容反引号在嵌套时无法正确处理内部引号$()无此问题local可防函数内部变量「泄漏」到全局command -v探测可执行文件是否存在/dev/null静默丢弃输出避免命令不存在时抛出难懂的错误shellcheck 是 Bash 脚本的必备静态分析工具能自动识别上述绝大多数隐患。六、在 ccg-workflow 工作流中使用本文知识结合 templates/rules/ccg-skill-routing.md 的路由规则当你向 ccg-workflow 发起「写一个批量重命名脚本」「排查端口占用」「自动化部署流程」等请求时AI 会先读取本技能文档获取权威 Bash 知识再结合仓库内真实存在的 Shell 工程实践例如 templates/codex/hooks/ccg-workflow.py、templates/skills/bt-panel/bt_deploy.py 等脚本型技能的部署实现给出符合项目规范的自动化方案。实践建议让 AI 按本文模板生成脚本直接要求「按set -euo pipefail trap 清理 分级日志的标准模板写一个 xx 脚本」即可获得可直接运行的生产级代码用 shellcheck 做质量门禁脚本产出后可用shellcheck检查再交由/ccg:verify-quality等质量门技能复核注意 Bash 版本兼容本文的关联数组declare -A要求 Bash 4macOS 自带 Bash 3.2 需通过brew install bash升级或在 shebang 中指定#!/usr/bin/env bash知识注入有据可依技能文件以「权威优先」原则工作AI 回答 Bash 问题时优先遵循本技能文档而非训练数据保证答案与仓库规范一致。结语templates/skills/domains/development/shell.md 浓缩了 Bash 开发从语法基础到工程最佳实践的全链路知识既是人类开发者的速查手册也是 ccg-workflow 多模型协作中注入 AI 上下文的权威领域知识。掌握本文的语法要点、脚本模板与命令组合配合set -euo pipefail、trap清理、shellcheck静态检查三大工程护盾即可写出健壮、可维护、可复用的生产级 Shell 脚本让系统管理自动化任务在 CCG 工作流中稳定落地。赞分享【免费下载链接】ccg-workflow多模型协作工作流引擎 — /ccg:go 一个命令AI 自动分析意图、选择策略、编排 Codex Gemini Claude 协作执行项目地址https://gitcode.com/gh_mirrors/cc/ccg-workflow点击查看免费下载相关推荐ccg-workflow 的 Shell 领域技能详解从 Bash 基础到生产级脚本模板的实战指南ccg workflow 的 Shell 领域技能详解从 Bash 基础到生产级脚本模板的实战指南 本文以 templates/skills/domains/人工智能AI 应用开发工具CLIAI Agentdsh-pluginDeepSeekCCG Workflow 实战指南用 /ccg:go 一条命令驱动 Claude Codex Gemini 多模型协作开发CCG Workflow 实战指南用 /ccg:go 一条命令驱动 Claude Codex Gemini 多模型协作开发 CCGClaude ccg-workflow 多模型协作系统技术全解从安装架构到 DeepSeek Harness 落地ccg workflow 多模型协作系统技术全解从安装架构到 DeepSeek Harness 落地 ccg workflow简称 CCG是围绕 Clau人工智能AI 应用开发工具CLIAI Agentdsh-pluginDeepSeek上一篇详解guided-diffusion的噪声调度策略cosine vs linear下一篇突破200K上下文LMDeploy动态NTK技术让长文档处理效率提升300%实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026年软件测试趋势:AI Agent、质量内建与可观测性重塑质量保障

2026年软件测试趋势:AI Agent、质量内建与可观测性重塑质量保障

做测试这行,每年年底都在猜明年的技术方向,但2026年这次不太一样。我最近和不少测试负责人、开发团队聊下来,大家最焦虑的已经不是又冒出了什么新工具,而是整个质量体系正在被 AI 和平台工程重构,很多沿用多年的测试方…

2026/10/12 3:39:10 阅读更多 →
netdxf实战:DXF文字注释与尺寸标注的创建与修改

netdxf实战:DXF文字注释与尺寸标注的创建与修改

接触过DXF开发的人应该都有这种感觉:画直线、画圆、画多段线都属于“基本功”,真正让图纸变得可读、可传递设计意图的,是文字注释和尺寸标注。这一篇是整个netdxf系列里我比较想写的一篇,因为注释和标注的处理逻辑和普通几何实体完…

2026/10/12 3:39:10 阅读更多 →
文华财经主升浪买点指标公式拆解:多条件共振识别趋势启动

文华财经主升浪买点指标公式拆解:多条件共振识别趋势启动

1. 文华财经主升浪买点指标的实战拆解做期货日内或者波段的朋友,应该都听过“主升浪”这个词。行情走主升浪的时候,速度最快、幅度最大,但也是最难拿得住的一段。很多朋友在文华财经软件里翻遍了各类指标公式,要么信号滞后&#x…

2026/10/12 3:39:10 阅读更多 →

最新新闻

AnyPS5:PS5多主机存档备份与迁移工具实战解析

AnyPS5:PS5多主机存档备份与迁移工具实战解析

说实话,第一次想到做AnyPS5这个小工具,是因为我自己被折腾得够呛。家里两台PS5,一台客厅一台书房,存档、截图、设置散落在两台机器上,打一半想换个地方继续,结果发现进度对不上。官方自带的数据同步功能在多…

2026/10/12 4:27:40 阅读更多 →
秒杀系统落地实践:高并发场景下的分层拦截与异步削峰

秒杀系统落地实践:高并发场景下的分层拦截与异步削峰

做秒杀系统这几年,我踩过的坑比看过的方案多。很多文章一上来就堆架构图,动辄"高可用""最终一致",看完反而不知道怎么落地。这篇我把一个能直接落地的秒杀方案从头到尾拆一遍,争取让你15分钟建立起完整的认知…

2026/10/12 4:27:40 阅读更多 →
基于Spring Boot的服装制造企业综合管理系统设计与实现

基于Spring Boot的服装制造企业综合管理系统设计与实现

每年到了毕业设计选题的时候,总会有同学来问我:有没有适合Java后端、工作量适中、又不容易烂大街的题目?我最常提到的就是“基于Spring Boot的服装制造有限公司综合管理系统”。这类项目热度很高,不是因为名字里有“服装”两个字&…

2026/10/12 4:27:40 阅读更多 →
Pomotroid 自动明暗主题(Auto/Light/Dark)实现全解析:从设置数据模型到 matchMedia 实时联动

Pomotroid 自动明暗主题(Auto/Light/Dark)实现全解析:从设置数据模型到 matchMedia 实时联动

【免费下载链接】pomotroid :tomato: Simple and visually-pleasing Pomodoro timer 项目地址: https://gitcode.com/gh_mirrors/po/pomotroid 点击查看 免费下载 导读:Pomotroid 是一款基于 Tauri Svelte 的番茄钟应用,其主题系统曾长期停…

2026/10/12 4:27:40 阅读更多 →
Apache Beam Java 聚合变换 GroupByKey 深度指南:分组原理、窗口触发与实战示例

Apache Beam Java 聚合变换 GroupByKey 深度指南:分组原理、窗口触发与实战示例

【免费下载链接】beam Apache Beam is a unified programming model for Batch and Streaming data processing. 项目地址: https://gitcode.com/gh_mirrors/beam18/beam 点击查看 免费下载 导读 GroupByKey 是 Apache Beam Java SDK 中最基础也最重要的聚合原语&…

2026/10/12 4:27:40 阅读更多 →
REA 逆向分析快速上手:4 步跑通第一次本地应用分析

REA 逆向分析快速上手:4 步跑通第一次本地应用分析

REA 逆向分析快速上手:4 步跑通第一次本地应用分析 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea 你在一个应用里看到想复刻的功能&am…

2026/10/12 4:26:39 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →