2015-04-07 148 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