Fórum Root.cz
Hlavní témata => Software => Téma založeno: Ħαℓ₸℮ℵ ␏⫢ ⦚ 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.
$ 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í.
-
Nikdy by me nenapadlo pouzit -O- nebo -S bez -q, ten bordel na vrchu i mimo progress bar tam proste nepatri.
-
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é.
wget -O - "https://www.flabgee.cz/wp-json/wp-statistics/v2/online" > standardni 2> chybovy
-
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ů.
-
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?
-
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.