當我運行這段代碼(從教程到二進制安全性)時,我總是在 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%
uj5u.com熱心網友回復:
我在reddit上找到了這個評論。
Zsh 有一個很好的功能,它可以告訴您前一個命令是否有尾隨換行符。在這種情況下,您可以自定義列印的內容。我的 ~/.zshrc 中有這個選項:
PROMPT_EOL_MARK='%K{red} ' 這將列印一個紅色塊而不是倒置的 %(或者當你是 root 時倒置的 #)。我覺得更好看。
您也可以將此引數設定為空。
PROMPT_EOL_MARK=''
uj5u.com熱心網友回復:
您已輸出文本,而無需告訴終端將游標移動到下一次的開頭。
zsh 不是在與其他文本相同的行上顯示提示,而是在輸出后將游標移動到下一行%以表明它已經這樣做了。
要按您的意愿移動游標,請替換
printf("%s", buf);
和
printf("%s\n", buf);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/336489.html
上一篇:我的程式只在特定情況下有效
