Linux 当Jenkins作业调用Tcl/Tk日志文件时,它有许多^H字符

Linux 当Jenkins作业调用Tcl/Tk日志文件时,它有许多^H字符,linux,tcl,expect,Linux,Tcl,Expect,我有一个Tcl/Tk expect脚本,日志信息被记录到外部日志文件中 我可以在Linux服务器上成功地执行它,没有任何错误,并且日志文件没有任何奇怪的^H。但是当Jenkins job调用脚本时,请在同一台Linux服务器上运行。日志文件将有大量的^H,expect将超时 可能的原因是什么?该^H实际上是,U+000008,用于终端(和终端模拟器)将当前字符插入位置向左移动一个位置。这反过来又用于模拟各种效果,例如使字符加粗(通过双击)或给它加下划线(通过在同一单元格上放置\uu)。想象一下,

我有一个Tcl/Tk expect脚本,日志信息被记录到外部日志文件中

我可以在Linux服务器上成功地执行它,没有任何错误,并且日志文件没有任何奇怪的
^H
。但是当Jenkins job调用脚本时,请在同一台Linux服务器上运行。日志文件将有大量的
^H
,expect将超时


可能的原因是什么?

^H
实际上是,U+000008,用于终端(和终端模拟器)将当前字符插入位置向左移动一个位置。这反过来又用于模拟各种效果,例如使字符加粗(通过双击)或给它加下划线(通过在同一单元格上放置
\uu
)。想象一下,就像是一个传统的电传打字机,它把东西打印到同一个位置两次。这绝对是我的宿醉 过去的日子

Jenkins(或者不管它在叫什么,很可能是maven,但肯定不一定是!)正在使用该设备备份它所写的内容,以便它可以在那里写一个新的值,可能是一个简单的下载进度表。写在他们认为是终端的东西有时会这样做。你只能应付了。Expect正则表达式中的A
\b
将与之匹配,尽管这样做可能是不明智的,因为被覆盖的内容都是瞬态信息。如果正在将字符写入文件,则可以使用
col
程序(属于
nroff
/
groff
套件的一部分)剥离字符;这可能更容易


请注意,软件还有其他方法可以实现相同的效果,例如只写入回车符(将光标放回当前行的开头)。

ASCII值^H是多少?这可能是一个\r\n问题,但您不处理Windows,所以可能不是。谢谢您,Sashaalm。我正在Linux上运行它。该值为\u0008。请创建一个复制错误的最小示例并将其发布。请参阅。我不确定^H是如何传递到我的脚本的。我无法为这个问题提供一个小例子。jenkins作业似乎在捕获实时输出的同时实现了一个waitbar。这也许就是原因。我自己尝试实现一个waitbar。但是不能引起同样的问题。如果你不能可靠地重现这个问题,那么谁又能知道如何解决它呢?假设你在一台安装了Linux的friends计算机上。一步一步地描述您需要安装和运行什么软件才能获得带有这些^H符号的文件。谢谢Donal。但我仍然不清楚如何修复它。这是我得到的结果。cd/iris/home/blackBox^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H测试/禁用会话