Answers:
从man文件中:
为了更好地允许脚本程序员了解curl的进度,引入了-w /-write-out选项。使用此功能,您可以指定要从先前的传输中提取哪些信息。
要显示下载的字节数以及一些文本和结尾的换行符:
curl -w 'We downloaded %{size_download} bytes\n' www.download.com
因此,请尝试将以下内容添加到您的~/.curlrc
文件中:
-w "\n"
echo '-w "\n"' >> ~/.curlrc
-w "\n"
手动向每个curl命令添加,并且TIL ~/.curlrc
存在!
-w "\nKLJLJKLJ LJKLLKJ"
我~/.curlrc
就跑卷曲,得到了既不是新行或怪异字符。
_
于.
。您可能正在寻找卷发~/_curlrc
,因此echo '-w "\n"' >> ~/_curlrc
可能会起作用。它为我做。顺便说一句:curl将抱怨未转义的空格
-w "\n"
或附加; echo
在修改上很有用.curlrc
。如果您修改curlrc,如果某些脚本在响应数据的末尾不处理换行符,则可能会中断。我个人会在修改rc时坚持在命令行上添加其他内容。
尝试:
curl jsonip.com; echo
输出值
{"ip":"x.x.x.x","about":"/about"}
这就是这么简单;)
(并且不仅限于curl命令,而是所有不以换行符结尾的命令)
有关更多信息以及卷曲后的干净新行
~/.curlrc
-w "\nstatus=%{http_code} %{redirect_url} size=%{size_download} time=%{time_total} content-type=\"%{content_type}\"\n"
(更多选项在这里可用)
redirect_url
如果请求没有被重定向,或者您用于-L
跟随重定向,则将为空白。
输出示例:
~ ➤ curl https://www.google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://www.google.co.uk/?gfe_rd=cr&ei=FW">here</A>.
</BODY></HTML>
status=302 https://www.google.co.uk/?gfe_rd=cr&ei=FW size=262 time=0.044209 content-type="text/html; charset=UTF-8"
~ ➤
编辑,为了使内容更易读,您可以-w
在行中添加ANSI颜色,直接编写并不是那么容易,但是此脚本可以生成~/.curlrc
带有颜色的文件。
#!/usr/bin/env python3
from pathlib import Path
import click
chunks = [
('status=', 'blue'),
('%{http_code} ', 'green'),
('%{redirect_url} ', 'green'),
('size=', 'blue'),
('%{size_download} ', 'green'),
('time=', 'blue'),
('%{time_total} ', 'green'),
('content-type=', 'blue'),
('\\"%{content_type}\\"', 'green'),
]
content = '-w "\\n'
for chunk, colour in chunks:
content += click.style(chunk, fg=colour)
content += '\\n"\n'
path = (Path.home() / '.curlrc').resolve()
print('writing:\n{}to: {}'.format(content, path))
path.write_text(content)
bash的一般解决方案是在命令提示符下添加换行符:
请参阅相关问题(如何在bash提示前使用换行符? )和相应的答案
该解决方案不仅覆盖curl,而且覆盖每个命令。
echo $PS1 # To get your current PS1 env variable's value aka '_current_PS1_'
PS1='\n_current_PS1_'
唯一的副作用是,每第二行之后都会出现命令提示符。
echo "$(curl localhost:8001/api)"
,请回答以下问题:unix.stackexchange.com/a/217611/110338