Fórum Root.cz
Hlavní témata => Software => Téma založeno: mikesznovu 18. 06. 2024, 19:04:51
-
To se netýká toalet. Ale nevím si rady , jak poslat příkaz wc na nějak výstup příkazu(například jako tcpdump, inotify, ale plus který zpočátku vychrlí množství naakumulovanych dat ) , který neukončí svůj výstup (jako journalctl bez parametrů nebo tail soubor.txt --follow) a ten příkaz ani nemá volbu ,kterou tohle chci docílit(aby nevypisoval nepřetržitě, ale jen vypsal jen logy doteď a a skončil).
(Mohu si dát ohejbák příkaz>tmp.txt ;Ctrl+C ; wc tmp.txt ; rm tmp.txt)
Jde např. něco jako
( příkaz & sleep 3 ; >&-) |wc
?
Nejde mi primárně o ukončení přikazu po určité době (byť u tcpdump nebo inotify bych to ocenil),
Ale o ukončení příkazu , potom, co bouřlivě vypíše "veškerá předchozí data" a pak už jen sporadicky vypíše jen při nějaké události(ta fáze mě už nezajímá). Tak jsem tam dal rezervu 3s.
-
Příkazem timeout se dá ukončit příkaz po uvedené době a na potlačení chyby se za něj dá něco co nic nevypíše. Třeba takhle
$ (timeout 3 yes; echo -n) | wc
-
Tak to je bomba, o tom jsem nevěděl
Btw existuje nějaký modifikátor jako v php @funkce nebo nohup , co by právě
zahodilo návratový kód příkazu. ? Korektně:nahradilo 0.
(Syntaktický cukr toho "echo - ;")
A potom , existuje něco pro zamezení smíchání vstupu (vložení ze schránky) a výstupu?
Typicky napíšu sed -E 's% +% %g' , dám.entr a pak vložím z schránkě a ctrl+d. Očekávám že se v-sype celá schránka a potom se vy-sype celý výstup .
Celý znamená nepromíchaný s zadaným textem., což právě se stane. A dokonxlce na každé platformě jinak
jak.to souvisí s wc? pokud použuju. Sed 's...c ,|wc enter, shift+ins,ctrl+d tak krásně (a zlogiky věci wc) se výstuo vypíše na závěr
Takže neexistuje něco jako
Sed 's...' | bufferize , Enter, shift+ins,ctr+d
?
Je to problém toho, že vkládaný text má tu drzost se zobrazovat. ;D a. Že zpracování je nějak bufferované.
Něco bez okliky vložení do dočasného souboru
-
Stačí výstup přesměrovat do souboru nebo do less například.