Wenn der HTTP-Antworttext für eine Curl-Anforderung keinen nachgestellten Zeilenumbruch enthält, kommt es zu diesem wirklich ärgerlichen Zustand, bei dem sich die Shell-Eingabeaufforderung in der Mitte der Zeile befindet und das Escape-Zeichen so durcheinander ist, dass beim Einsetzen des letzten Curls Befehl auf dem Bildschirm, Löschen von Zeichen aus diesem Curl-Befehl Löschen Sie die falschen Zeichen.
Beispielsweise:
[root@localhost ~]# curl jsonip.com
{"ip":"10.10.10.10","about":"/about"}[root@localhost ~]#
Gibt es einen Trick, mit dem ich am Ende einer Curl-Antwort automatisch eine neue Zeile hinzufügen kann, um die Eingabeaufforderung wieder am linken Bildschirmrand anzuzeigen?
echo "$(curl localhost:8001/api)"
dieser Antwort: unix.stackexchange.com/a/217611/110338Antworten:
Aus der Man-Datei:
Fügen Sie Ihrer
~/.curlrc
Datei also Folgendes hinzu :quelle
echo '-w "\n"' >> ~/.curlrc
-w "\n"
manuell zu jedem Curl-Befehl hinzu und TIL~/.curlrc
existiert!-w "\nKLJLJKLJ LJKLLKJ"
meiner hinzu~/.curlrc
und ließ eine Locke laufen und bekam weder eine neue Linie noch die seltsamen Charaktere._
über.
. Die Chancen stehen gut, dass Ihre Locke sucht~/_curlrc
und folglichecho '-w "\n"' >> ~/_curlrc
wahrscheinlich funktioniert. Das tut es für mich. Übrigens: Curl wird sich über Leerzeichen beschweren-w "\n"
oder; echo
über das Ändern Ihrer zu hängen.curlrc
. Wenn Sie Ihre Curlrc ändern, können einige Skripte unterbrochen werden, wenn sie am Ende der Antwortdaten keine neue Zeile verarbeiten. Ich persönlich würde mich an die Ergänzungen in der Befehlszeile halten, um den RC zu ändern.Versuch das :
AUSGABE
So einfach ist das ;)
(und nicht beschränkt auf den Befehl curl, sondern auf alle Befehle, die nicht mit einer neuen Zeile enden)
quelle
Für weitere Informationen sowie eine saubere neue Linie nach dem Einrollen
~/.curlrc
(Weitere Optionen finden Sie hier )
redirect_url
wird leer sein, wenn die Anfrage nicht umgeleitet wird oder Sie-L
der Weiterleitung folgen.Beispielausgabe:
Bearbeiten , um die Lesbarkeit zu verbessern, können Sie der
-w
Zeile ANSI-Farben hinzufügen. Es ist nicht so einfach, direkt zu schreiben, aber dieses Skript kann eine~/.curlrc
Datei mit Farben generieren .quelle
Die allgemeine Lösung für Bash besteht darin, der Eingabeaufforderung ein Zeilenumbruchsymbol hinzuzufügen:
Siehe verwandte Frage ( Wie bekomme ich eine neue Zeile vor der Bash-Eingabeaufforderung? ) Und die entsprechende Antwort
Diese Lösung deckt jeden Befehl ab, nicht nur das Einrollen.
Der einzige Nebeneffekt ist, dass Sie nach jeder zweiten Zeile eine Eingabeaufforderung erhalten.
quelle