为什么 cURL 请求在 ZSH 中的每个请求中都返回百分号 (%)?

2024-01-11

我注意到 ZSH 中任何 cURL 请求的返回都以%, 例如:

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

为什么要添加这个字符?是否有删除它的标准方法?

注意:ZSH 是我注意到发生这种情况的唯一 shell(在 bash csh ksh sh tcsh zsh 中测试)


这是一个zshfeature命令完成后打印百分比和换行符if该命令尚未在其输出末尾包含换行符。如果 zsh 没有这样做,您要么不会注意到该命令没有打印换行符,要么您会看到 zsh 的命令提示符not从边缘开始,认为这是 zsh 中的一个错误。

像curl这样的工具会严格地打印从源头获得的任何结果,并且在没有要求的情况下决不应该自发地打印换行符。我最常在curl 中看到这种行为。如果您正在编写使用curl的工具,您当然可以选择自己添加换行符。

我建议除非确实必要,否则不要添加换行符。如果您确实想添加换行符,则可以使用单独的工具(例如 echo) - 但使用curl最简单的是“写出”选项:

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

来自curl 的手册页:

   -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 "@-".
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 cURL 请求在 ZSH 中的每个请求中都返回百分号 (%)? 的相关文章

随机推荐