首页 > 解决方案 > linux终端输出冗余内容

问题描述

我的Linux是Arch,我的配置如下:

Kernel: 5.13.13-arch1-1
Packages: 490 (pacman)
Shell: zsh 5.8
WM: dwm
Terminal: st
Terminal Font: Source Code Pro

当我使用 C 输出语句时,例如printfand putchar('A');,如果我没有在末尾添加 \r 或 \n,我将在终端上得到一个额外的 '%' 字符。

$ ./a.out
A%
$

这个问题困扰了我很久,以至于不知道是谁的问题,用dwm?用嘘?用zhs?

标签: carch

解决方案


这是 zsh 的一个功能,用于显示程序何时结束而没有最后的换行符,并将 zsh 的命令提示符与程序输出区分开来。

您可以使用 zsh 命令禁用它PROMPT_EOL_MARK=''您也可以将其设置为其他内容,例如PROMPT_EOL_MARK=' -- The program did not end with a newline.'.


推荐阅读