2015-04-07 89 views
7

我注意到,从ZSH任何卷曲要求退货的%结尾,例如:为什么cURL请求在ZSH中的每个请求都返回百分号(%)?

$ curl http://textbelt.com/text -d number="555555555" -d message="hey" 
=> { "success": true }% 

为什么被加入这个人物,是有关于删除它的标准方法?

注:ZSH的是,我发现发生这种情况的唯一壳(在bash测试CSH ksh的SH tcsh中的zsh)

回答

5

这是一个的zsh 特征一个命令完成后如果该命令不包括已经在其输出端的端部的换行,打印百分比和 - 换行符。如果zsh没有这样做,你可能根本没有注意到命令没有打印换行符的事实 - 或者你会看到zsh的命令提示符而不是开始在边距上,并认为它是zsh中的一个错误。

工具喜欢卷曲宗教打印他们从源头获得的结果,不应该自发地打印新行,而不会被要求。我通常用curl来看这种行为。如果你正在编写一个使用curl的工具,你当然可以选择自己添加一个换行符。

我建议不要添加换行符,除非您真的必须这样做。在你真的想添加一个新行的情况下,你可以使用一个单独的工具(回声为例) - 但最简单的卷曲度是“写出来”选项:

$ curl http://api.macvendors.com/0015c7 
Cisco Systems, Inc%  
$ curl -w '\n' http://api.macvendors.com/0015c7 
Cisco Systems, Inc 
$ 

从卷曲的手册页:

-w, --write-out <format> 
      Make curl display information on stdout after a completed transfer. The format is a string that may contain plain text 
      mixed with any number of variables. The format can be specified as a literal "string", or you can have curl read the for- 
      mat from a file with "@filename" and to tell curl to read the format from stdin you write "@-". 
+0

对不起,旧的线程。但是,有什么想法这个功能被称为?最近有人为我禁用了,我不知道如何重新启用它 –

+1

发现它,它的'setopt PROMPT_CR'! –

1

尝试明确地添加一个新行\ n至该消息。

+0

尝试,但似乎并没有帮助。 – Travis