首页 > 解决方案 > zsh shell 中的百分号从何而来?

问题描述

当我运行这段代码(从教程到二进制安全)时,我总是在我的 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%

标签: czsh

解决方案


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

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

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

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

PROMPT_EOL_MARK=''


推荐阅读