Fórum Root.cz

Hlavní témata => Software => Téma založeno: Ħαℓ₸℮ℵ ␏⫢ ⦚ 30. 01. 2024, 18:09:31

Název: wget zašlape jednořádkový výstup
Přispěvatel: Ħαℓ₸℮ℵ ␏⫢ ⦚ 30. 01. 2024, 18:09:31
V Wget je taková dost kuriozní chyba, autodestrukce výstupu indikátorem postupu při výstupu do terminálu (-O - - což je asi hned druhá varianta použití si výstup poslat do terminálu) V případě že jde o jednořádkové response bez znaku nového řádku. Typicky JSON volání nebo různé api . V defaultním chování wget ukazuje i ten slavný progressbar, který právě za tohle může.

Člověk je pak zmaten, proč mu to nedává žádnou odpověď. Nikdy by mě nenapadlo, že progressbar je právě tím viníkem.

Kód: [Vybrat]
$ admin ~ wget -O-  "https://www.flabgee.cz/wp-json/wp-statistics/v2/online"
--2024-01-30 18:02:44--  https://www.flabgee.cz/wp-json/wp-statistics/v2/online
Překládám www.flabgee.cz (www.flabgee.cz)… 31....50
Navazuje se spojení s www.flabgee.cz (www.flabgee.cz)|31.15.10.56|:443… spojeno.
HTTP požadavek odeslán, program čeká na odpověď… 200 OK
Délka: 77 [application/json]
Ukládám do: „STDOUT“

-                                                    0%[                                                                                                               ]       0  --.-KB/s               {-                                                  100%[==============================================================================================================>]      77  --.-KB/s    za 0s

2024-01-30 18:02:44 (2,17 MB/s) – zapsáno na standardní výstup [77/77]

$ wget .... -q
{vystupzstranky}$ admin@pc ~

V případě volby "--progressbar=" nebo --progressbar=dot se výstup zamíchá pod řádek Ukládám. V případě použití volby -q se zobrazí ten výstup, ničím nerušený. Sláva. Kdo to ale má dopředu tušit tuhle bombu   :o
curl tímto netrpí.

Název: Re:wget zašlape jednořádkový výstup v defaultním nastavení.
Přispěvatel: RDa 30. 01. 2024, 20:21:26
Nikdy by me nenapadlo pouzit -O- nebo -S bez -q, ten bordel na vrchu i mimo progress bar tam proste nepatri.
Název: Re:wget zašlape jednořádkový výstup
Přispěvatel: _Jenda 31. 01. 2024, 03:37:32
Ve skutečnosti je to oddělené, jedno je stdout a jedno je stderr. Je ostuda, že to terminály pořád mixujou. Já bych si přál mít je třeba barevně odlišené.

Kód: [Vybrat]
wget -O -  "https://www.flabgee.cz/wp-json/wp-statistics/v2/online" > standardni 2> chybovy
Název: Re:wget zašlape jednořádkový výstup
Přispěvatel: tecka 31. 01. 2024, 05:32:32
Je ostuda, že to terminály pořád mixujou.
Terminál zobrazuje data, co do něj sypeš a nemůže nijak řešit to, že program má na několika deskriptorech stejný terminál. To si můžeš pořešit ty (nebo shell) přesměrováním do různých terminálů.
Název: Re:wget zašlape jednořádkový výstup
Přispěvatel: RDa 31. 01. 2024, 09:44:49
Je ostuda, že to terminály pořád mixujou.
Terminál zobrazuje data, co do něj sypeš a nemůže nijak řešit to, že program má na několika deskriptorech stejný terminál. To si můžeš pořešit ty (nebo shell) přesměrováním do různých terminálů.

Umi to treba screen splitnout? Nebo nejaky jiny textovy tiling tool?
Název: Re:wget zašlape jednořádkový výstup
Přispěvatel: tecka 31. 01. 2024, 12:39:08
Umi to treba screen splitnout? Nebo nejaky jiny textovy tiling tool?
screen a tmux jde externě ovládat, takže by asi šlo napsat funkci "spliterr [command...]", která třeba vytvoří nové okno a přesměruje stderr "commandu" do něj.