Jeśli treść odpowiedzi HTTP na żądanie zwijania nie zawiera końcowego nowego wiersza, kończę z tym naprawdę irytującym stanem, w którym monit powłoki znajduje się na środku wiersza, a ucieczka jest wystarczająco pomieszana, że kiedy wstawiam ostatni zwijający się polecenie na ekranie, usuwanie znaków z tego polecenia zwijania powoduje usunięcie niewłaściwych znaków.
Na przykład:
[root@localhost ~]# curl jsonip.com
{"ip":"10.10.10.10","about":"/about"}[root@localhost ~]#
Czy istnieje sztuczka, której można użyć, aby automatycznie dodać nowy wiersz na końcu odpowiedzi zwijania, aby uzyskać monit z powrotem na lewej krawędzi ekranu?
echo "$(curl localhost:8001/api)"
, że ta odpowiedź jest następująca: unix.stackexchange.com/a/217611/110338Odpowiedzi:
Z pliku man:
Spróbuj więc dodać do
~/.curlrc
pliku:źródło
echo '-w "\n"' >> ~/.curlrc
-w "\n"
ręcznie do każdego polecenia curl i TIL~/.curlrc
istnieje!-w "\nKLJLJKLJ LJKLLKJ"
do siebie~/.curlrc
i uruchomiłem loki i nie dostałem ani nowej linii, ani dziwnych postaci._
ponad.
. Możliwe, że twoje loki szukają~/_curlrc
iecho '-w "\n"' >> ~/_curlrc
prawdopodobnie będą działać. To mi odpowiada. btw: curl będzie narzekał na-w "\n"
lub dołączanie; echo
go do modyfikowania ma wartość.curlrc
. Jeśli zmodyfikujesz curlrc, niektóre skrypty mogą ulec uszkodzeniu, jeśli nie będą obsługiwały nowego wiersza na końcu danych odpowiedzi. Osobiście trzymałbym się dodatków w wierszu poleceń zamiast modyfikowania rc.Spróbuj tego :
WYNIK
To takie proste;)
(i nie ogranicza się do polecenia curl, ale wszystkie polecenia, które nie kończą się nową linią)
źródło
Aby uzyskać więcej informacji, a także czystą nową linię po zwijaniu
~/.curlrc
(Więcej opcji jest dostępnych tutaj )
redirect_url
będzie puste, jeśli żądanie nie zostanie przekierowane lub użyjesz go-L
do śledzenia.Przykładowe dane wyjściowe:
Edytuj , aby uczynić rzeczy bardziej czytelnymi, możesz dodać kolory
-w
linii ANSI do linii, nie jest tak łatwo pisać bezpośrednio, ale ten skrypt może wygenerować~/.curlrc
plik z kolorami.źródło
Ogólnym rozwiązaniem dla bash jest dodanie symbolu wiersza polecenia do wiersza poleceń:
Zobacz powiązane pytanie ( Jak uzyskać znak nowej linii przed monitem bash? ) I odpowiednią odpowiedź
To rozwiązanie obejmuje każde polecenie, a nie tylko zawinięcie.
Jedynym efektem ubocznym jest to, że po każdym drugim wierszu pojawia się wiersz polecenia.
źródło