Skip to content

fix: 修复 term_title.awk 直接硬编码 \033 导致部分系统上解析出错的问题#68

Merged
lloydzhou merged 1 commit into
lloydzhou:mainfrom
engigu:fix/awk-escape-pebkac
Jul 14, 2026
Merged

fix: 修复 term_title.awk 直接硬编码 \033 导致部分系统上解析出错的问题#68
lloydzhou merged 1 commit into
lloydzhou:mainfrom
engigu:fix/awk-escape-pebkac

Conversation

@engigu

@engigu engigu commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

描述

本 PR 修复了 term_title.awk 在部分操作系统或定制的 awk 解释器/安全检测中,因直接硬编码 \033\007 导致解析出错的问题。

腾讯云服务器会出现报错

ubuntu@VM-0-4-opencloudos:~$ bash-agent  --continue '你是谁'
The user asked "你是谁" (who are you) again. I already answered this. They might be testing or just didn't see my previous answer. Let me give a concise, direct answer.
**bash-agent** — 一个轻量级的终端编码助手,可以在 Linux shell 中帮你执行命令、搜索文件、编辑代码等。

目前终端环境有个系统层的问题,每条命令都会报 awk 错误(`PEBKAC error: invalid character '\033'`),暂时无法正常执行命令。


修复详情

1. 修复 term_title.awk 中报 PEBKAC error: invalid character '\033' 的解析/安全检测拦截问题

  • 根本原因
    term_title.awk 源码中,直接硬编码写入了 \033(ESC)和 \007(BEL)字符串序列。
    在某些特定的操作系统环境(例如 OpenCloudOS、部分企业容器环境)中,定制的 awk 解释器、安全检测代理或自定义脚本如果直接在传入的源代码字符串中检测到非转义的 ESC 等控制序列,会抛出 fatal: PEBKAC error: invalid character '\033' in source code 句法错误或者触发安全合规拦截。
  • 修复方案
    term_title.awkEND 块中,使用 sprintf("%c", 27)(ESC)和 sprintf("%c", 7)(BEL)来动态生成这些控制字符,从而在 awk 源码中彻底避免直接硬编码包含 \033\007 的字样,以增强脚本的平台兼容性并规避安全拦截。

@engigu
engigu marked this pull request as ready for review July 14, 2026 07:15
@lloydzhou
lloydzhou merged commit 30f44fa into lloydzhou:main Jul 14, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants