在curl响应主体的末尾自动添加换行符 如果对于卷曲请求的HTTP响应体不包含尾随换行符,那么我就结束了这个恼人的情况,其中shell提示符在行的中间,并且逃逸被搞乱了,当我把最后一个卷曲命令放在屏幕上时,从该CURL命令中删除字符删除错误的字符。

在curl响应主体的末尾自动添加换行符 如果对于卷曲请求的HTTP响应体不包含尾随换行符,那么我就结束了这个恼人的情况,其中shell提示符在行的中间,并且逃逸被搞乱了,当我把最后一个卷曲命令放在屏幕上时,从该CURL命令中删除字符删除错误的字符。,curl,Curl,例如: [root@localhost ~]# curl jsonip.com {"ip":"10.10.10.10","about":"/about"}[root@localhost ~]# 是否有一种技巧可以用来在curl响应的末尾自动添加一个换行符,以使提示返回屏幕的左边缘?使用以下方法: curl jsonip.com; echo 如果需要分组以馈送管道,请执行以下操作: 输出 {"ip&qu

例如:

[root@localhost ~]# curl jsonip.com
{"ip":"10.10.10.10","about":"/about"}[root@localhost ~]#
是否有一种技巧可以用来在curl响应的末尾自动添加一个换行符,以使提示返回屏幕的左边缘?

使用以下方法:

curl jsonip.com; echo 
如果需要分组以馈送管道,请执行以下操作:

输出

{"ip":"x.x.x.x","about":"/about"}
就这么简单;)

(不限于curl命令,但包括所有未以换行结束的命令)

来自man文件:

更好地让脚本程序员了解 curl,引入了-w/--write-out选项。使用此选项,可以指定 您希望从上一次传输中提取哪些信息

显示下载的字节数以及一些文本和 结束换行:

curl -w 'We downloaded %{size_download} bytes\n' www.download.com
因此,请尝试将以下内容添加到
~/.curlrc
文件中:

-w "\n"

欲了解更多信息以及卷曲后的全新线条

~/.curlrc

-w "\nstatus=%{http_code} %{redirect_url} size=%{size_download} time=%{time_total} content-type=\"%{content_type}\"\n"
(更多选项可用)

如果请求未被重定向,或者您使用
-L
遵循重定向,则
重定向\u url
将为空

示例输出:

~ ➤  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&amp;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"
~ ➤  

bash的一般解决方案是在命令提示符中添加换行符:

参见相关问题()和相应的

此解决方案涵盖每个命令,而不仅仅是curl

echo $PS1 # To get your current PS1 env variable's value aka '_current_PS1_'
PS1='\n_current_PS1_'

唯一的副作用是,在每第二行之后都会出现命令提示符。

当命令输出的末尾没有新行时,我设法在提示符中动态添加了一行。因此,它不仅适用于
curl
,还适用于任何其他命令

#https://github.com/dylanaraps/pure-bash-bible#get-当前光标位置
新线(ps1){
局部uy x_
局部光_黄色=“\001\033[1;93m\002”
本地重置=“\001\e[0m\002”
IFS='[;'read-p$'\e[6n'-dr-rs_uyx_
如果[[“$x”!=1]];则
printf“\n${LIGHT\u YELLOW}^^输出结尾没有换行符^^\n${RESET}”
fi
}
PS1=“\$(新线路)$PS1”

我在UL网站上的回答是:

有没有办法用脚本、bash别名或类似的东西来包装它?键入“echo”在每一行的末尾可能会变得单调乏味,我觉得这应该能够以某种方式实现自动化。因此,最好提供一些搜索工作。找到如何将其放入别名或脚本中是显而易见的。请注意,添加echo命令将清除curl命令中的退出代码,-w“\n”在最流行的答案中建议的curl选项使curl退出代码可供检查。您可以运行以下命令来执行此操作:
echo'-w“\n'>>~/.curlrc
I始终添加
-w”\n
手动添加到每个curl命令,直到
~/.curlrc
存在!这在Windows上的git bash下可能不起作用;我添加了
-w“\nkljlklj ljklkj”
到我的
~/.curlrc
并运行了一个curl,但没有得到新行或奇怪的字符。@jcollum一些Windows端口更喜欢
而不是
。很可能你的curl正在寻找
~/\ucurlRC
,因此
echo'-w'\n“>>~/\u curlrc
可能会起作用。对我来说确实如此。顺便说一句:curl会抱怨未设置空格的问题使用带有
-w”\n的命令行很有价值
或追加
;echo
超过修改
.curlrc
。如果修改curlrc,一些脚本可能会中断,如果它们不处理响应数据末尾的换行符。我个人会坚持在命令行上添加内容,而不是修改rc。对于任何版本的curl m,这些答案都不适用于我y cygwin安装有;只有将整个curl命令包装在echo语句中才有,例如,
echo“$(curl localhost:8001/api)”
,我们的答案是:对于json,具体来说,
curl-shttps://jsonip.com |jq
echo $PS1 # To get your current PS1 env variable's value aka '_current_PS1_'
PS1='\n_current_PS1_'