curl - isabel - el cuerpo del deseo resumen
Agregue automáticamente nueva línea al final del cuerpo de respuesta del rizo (3)
Si el cuerpo de respuesta HTTP para una solicitud curl no contiene una nueva línea final, termino con esta condición realmente molesta donde el indicador de shell está en el medio de la línea, y el escape está tan mal que cuando puse el último curl comando en la pantalla, eliminar caracteres de ese comando curl eliminar los caracteres incorrectos.
Por ejemplo:
[root@localhost ~]# curl jsonip.com
{"ip":"10.10.10.10","about":"/about"}[root@localhost ~]#
¿Hay algún truco que pueda usar para agregar automáticamente una nueva línea al final de una respuesta curl, para volver a mostrar el mensaje en el borde izquierdo de la pantalla?
Del archivo man:
Para permitir que los programadores de scripts conocieran mejor el progreso de Curl, se introdujo la opción -w / - write-out. Al usar esto, puede especificar qué información de la transferencia anterior desea extraer.
Para mostrar la cantidad de bytes descargados junto con algún texto y una nueva línea final:
curl -w ''We downloaded %{size_download} bytes/n'' www.download.com
Intente agregar lo siguiente a su archivo ~/.curlrc
:
-w "/n"
Para obtener más información, así como una nueva línea limpia después del enrollamiento
~/.curlrc
-w "/nstatus=%{http_code} %{redirect_url} size=%{size_download} time=%{time_total} content-type=/"%{content_type}/"/n"
(Más opciones están disponibles here )
redirect_url
estará en blanco si la solicitud no se redirecciona o utiliza -L
para seguir el redireccionamiento.
Ejemplo de salida:
~ ➤ 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"
~ ➤
Editar , para hacer las cosas más legibles, puede agregar colores ANSI a la línea -w
, no es tan fácil escribir directamente, pero this secuencia de comandos puede generar un archivo ~/.curlrc
con colores.
#!/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)
Trata eso :
curl jsonip.com; echo
SALIDA
{"ip":"x.x.x.x","about":"/about"}
Esto es así de simple;)
(y no se limita al comando curl pero todos los comandos que no terminan con una nueva línea)