Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako različito obojiti iz različitih izvora ispis na ekran?

[es] :: Skript jezici :: Kako različito obojiti iz različitih izvora ispis na ekran?

[ Pregleda: 2695 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Kako različito obojiti iz različitih izvora ispis na ekran?20.02.2011. u 11:55 - pre 159 meseci
Pratim promene u više fajlova i interfejsa i ispisujem ih na /dev/tty12. Želim to da obojim različito u zavisnosti od izvora.

Primer:
tail -f /var/log/messages | grep ADSL > /dev/tty12
tail -f /var/log/pppd > /dev/tty12
tcpdump -i nas0 | grep LCP > /dev/tty12

Problem je, kako to uraditi (ako je uopšte moguće)? Mogu da obojim ceo ekran sa echo -e "\E[1;31;40m" > /dev/tty12, ali na koji način da to uradim zasebno za svaki ispis iz svake komande?
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Re: Kako različito obojiti iz različitih izvora ispis na ekran?28.02.2011. u 13:17 - pre 159 meseci
Vidim da nema odgovora. Da li eventualno zna neko način da na svaki isipis tipa tail dodam pre ispisa neki string ("\E[1;31;40m") koji bi u stvari bio sekvenca za boju? Znači, kada god tail treba da ispiše novi red, da pre toga ubaci "\E[1;31;40m".

Ne mora tail, može i neko drugo rešenje koje bi pratilo sadržaj fajla i ispisivalo na određeni izlaz uz prefiks recimo "\E[1;31;40m". Verujem da bi tu mogla da se napravi neka srkiptica, ali teško da bih ja to uspeo bez nekih bližih uputstava šta i kako.
 
Odgovor na temu

niceness
Novi Sad

Član broj: 93992
Poruke: 993



+22 Profil

icon Re: Kako različito obojiti iz različitih izvora ispis na ekran?02.03.2011. u 18:54 - pre 159 meseci
Probaj nesto ovako:
Code:
$ cat color.sh
#!/bin/sh

while read line ; do
    echo -e "\e[1;32;40m$line\e[0m"
done
$ tail -f /var/log/messages | grep ADSL | color.sh > /dev/tty12
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Re: Kako različito obojiti iz različitih izvora ispis na ekran?03.03.2011. u 00:19 - pre 159 meseci
Odlčno! Radi.

Finalna verzija:

Code:

#!/usr/bin/bash

a=$1
b=$2
c=$3
a=${a:=0}
b=${b:=37}
c=${c:=40}

while read line;
do
        echo -e "\e[${a};${b};${c}m$line\e[0m"
done



Uzgred, jel može neko da mi objasni zašto ne mogu da napišem a=${1:=0} već moram izokola: a=$1; a=${a:=0}
 
Odgovor na temu

niceness
Novi Sad

Član broj: 93992
Poruke: 993



+22 Profil

icon Re: Kako različito obojiti iz različitih izvora ispis na ekran?03.03.2011. u 09:08 - pre 159 meseci
Nemoj koristiti a=${1:=0], vec a=${1:-0] (znaci povlaka, a ne jednako).
Sa prvim pokusavas da dodelis vrednost pozicionom parametru, sto nije moguce na ovaj nacin.

Jos jedna stvar... umesto #!/usr/bin/bash stavi #!/usr/bin/env bash.
(Cisto zbog portabilnosti; na vecini Linux sistem bash je u /bin, na drugim unix-olikim OS opet negde trece...)
 
Odgovor na temu

[es] :: Skript jezici :: Kako različito obojiti iz različitih izvora ispis na ekran?

[ Pregleda: 2695 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.