Curl如何使用以
如何使用以 @
開頭的 cURL 發佈內容?
命令
curl http://localhost/ --data @hello
將嘗試從文件中讀取
hello
。如何轉義@
符號?
在不試圖了解更多關於 curl 內部的資訊的情況下,我建議直接進入它:
printf @hello | curl http://localhost/ --data @-
正如@ulrich-schwarz 在評論中建議的那樣,
--data @<(echo @hello)
如果更方便,您也可以使用(並非所有外殼都支持這種語法)。查看 curl-7.41.0 的原始碼,我看不出有任何方法可以轉義
@
符號以防止解釋為文件名:if('@' == is_file) { /* a '@' letter, it means that a file name or - (stdin) follows */ if(curlx_strequal("-", p)) { file = stdin; set_binmode(stdin); } else { file = fopen(p, "rb"); if(!file) warnf(config, "Couldn't read data from file \"%s\", this makes " "an empty POST.\n", nextarg); } /* ... */ }
所以,不幸的是,看起來我們被上面的管道解決方案卡住了。