zsh shell中的百分号是怎么来的?

zel*_*ell 2 c zsh

当我运行这段代码(从教程到二进制安全性)时,我总是在 zsh shell 中得到一个“%”。这些百分号从何而来以及如何摆脱它们?

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
  char buf[256];
  memcpy(buf, argv[1],strlen(argv[1]));

  printf("%s", buf);
}


% ./a.out 234
234%
% ./a.out 23466
23466%
% ./a.out 2
2%
Run Code Online (Sandbox Code Playgroud)

Bat*_*lay 5

我在reddit上找到了这条评论。

Zsh 有一个很好的功能,它可以告诉您上一个命令是否有尾随换行符。您可以自定义在这种情况下打印的内容。我的 ~/.zshrc 中有这个选项:

PROMPT_EOL_MARK='%K{red} ' 这将打印一个红色块,而不是反转的 %(或者当您是 root 时反转的 #)。我觉得更好看。

您也可以将此参数设置为空。

PROMPT_EOL_MARK=''