abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
včera 21:44 | Nová verze

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 1
včera 14:00 | Zajímavý projekt

Byl spuštěn Humble Down Under Bundle. Za vlastní cenu lze koupit multiplatformní hry The Warlock of Firetop Mountain, Screencheat, Hand of Fate a Satellite Reign. Při nadprůměrné platbě (aktuálně 3,63 $) také Hacknet, Hacknet Labyrinths, Crawl a Hurtworld. Při platbě 12 $ a více lze získat navíc Armello.

Ladislav Hagara | Komentářů: 0
včera 13:00 | Nová verze

Google Chrome 62 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 62.0.3202.62 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 35 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 2
včera 11:00 | Zajímavý článek

Článek (en) na Mozilla.cz je věnován vykreslování stránek ve Firefoxu. V průběhu roku 2018 by se ve Firefoxu měl objevit WebRender, jenž by měl vykreslování stránek urychlit díky využití GPU.

Ladislav Hagara | Komentářů: 4
včera 08:22 | Bezpečnostní upozornění

NÚKIB (Národní úřad pro kybernetickou a informační bezpečnost) informuje o zranitelnosti ROCA v procesu generování RSA klíčů, který se odehrává v softwarové knihovně implementované například v kryptografických čipových kartách, bezpečnostních tokenech a dalších hardwarových čipech vyrobených společností Infineon Technologies AG. Zranitelnost umožňuje praktický faktorizační útok, při kterém útočník dokáže vypočítat

… více »
Ladislav Hagara | Komentářů: 3
včera 01:23 | Zajímavý software

Příspěvek na blogu otevřené certifikační autority Let's Encrypt informuje o začlenění podpory protokolu ACME (Automatic Certificate Management Environment) přímo do webového serveru Apache. Klienty ACME lze nahradit novým modulem Apache mod_md. Na vývoj tohoto modulu bylo uvolněno 70 tisíc dolarů z programu Mozilla Open Source Support (MOSS). K rozchození HTTPS na Apache stačí nově přidat do konfiguračního souboru řádek s ManagedDomain. Minutový videonávod na YouTube [reddit].

Ladislav Hagara | Komentářů: 2
17.10. 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 10
17.10. 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
17.10. 00:44 | Pozvánky

V sobotu 21. října 2017 se na půdě Elektrotechnické fakulty ČVUT v Praze uskuteční RT-Summit – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt.

… více »
Pavel Píša | Komentářů: 8
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (13%)
 (2%)
 (0%)
 (2%)
 (73%)
 (11%)
Celkem 62 hlasů
 Komentářů: 4, poslední včera 21:50
    Rozcestník

    Barevný a formátovaný text v terminálu

    4. 3. 2010 | David Watzke | Návody | 12776×

    V tomto článku se dozvíte, jak ovlivnit zobrazení výstupu programu na terminálu. Článek rozebírá především barvy a základní formátování.

    Obsah

    Většina un*xových emulátorů terminálu podporuje řídící (escape) sekvence ANSI, které slouží (mimo jiné) k formátování výstupu na textových terminálech.

    Nejdříve si povíme něco k teorii a pak si ukážeme ukázky kódu v různých programovacích jazycích. Tato záležitost není multiplatformní a na Windows je třeba postupovat trochu jinak než na Linuxu a jiných unixových systémech. Ne každý emulátor terminálu má implementovánu podporu všech standardizovaných vlastností a aby toho nebylo málo, některé vlastnosti dokonce v různých terminálech dělají různé věci. To vám doufám postačí jako pádný důvod k tomu, abyste v případě, že použijete formátování ve svém programu, nezapomněli i na možnost formátování úplně vypnout.

    Snad jsem vás ještě neodradil. V praxi to není až tak hrozné. Většinou budete chtít zřejmě používat jen základní možnosti formátování textu a s těmi není žádný problém na hojně používaných emulátorech terminálu.

    Takže jak na to? Escapovací sekvence se tomu neříká jen tak pro nic za nic, escape je totiž znak, který tyto řídící sekvence zahajuje. Tedy ještě spolu se znakem „[“, který jej musí následovat. Této sekvenci znaků se říká zkratkou CSI, a to znamená Control Sequence Introducer/Initiator – česky iniciátor řídící sekvence. Za touto sekvencí následuje samotný příkaz. My se v tomto článku budeme zabývat pouze příkazem ovlivňujícím zobrazení textu na terminálu. Jeho předpis vypadá takto:

    CSI a [;b] m
    

    Mezery jsou v předpisu pouze pro přehlednost a hranatá závorka značí volitelnost. A co to znamená? CSI je zmiňovaná zahajovací sekvence, tedy ESC+[. Písmena „a“ a „b“ jsou parametry, které nahradíme za čísla. Za jaká? To záleží na tom, co od příkazu očekáváte. Možnosti jsou vypsané v tabulce níže. Za parametry je třeba dát písmeno „m“ tak, jak je.

    A teď když konečně prozradím, jak napsat znak escape, tak si to budeme moci předvést. Máte tři možnosti, jak napsat escape, buď \033 (umístění znaku escape v ASCII tabulce zapsáno v osmičkové soustavě je 33), \x1b (umístění znaku v ASCII tabulce zapsáno v šestnáctkové soustavě je 1B) nebo \e (styl jazyka C), což je nestandardní (a někde nepodporovaný), ale poměrně rozšířený zápis (dostupný nejen v C).

    \033[31mAhoj barevný světe!\033[0m
         ^^                         ^- vypne formátování
          `- zahájí výpis v červené barvě
    

    Jak je vidět, v tomto případě používáme pouze parametr „a“ (z předpisu výše). Když použijeme zároveň i parametr „b“, můžeme nastavit dvě atributy najednou stylem „a;b“, takže to pak celé vypadá takto: \033[a;bm, přičemž za „a“ a „b“ dosadíme číselné hodnoty. Následuje výběr ze seznamu možných hodnot parametrů:

    • 0 – vypne všechny atributy
    • 1 – tučný text
    • 4 – jednoduché podtržení
    • 5 – blikající text
    • 7 – prohodí barvy popředí a pozadí
    • 39 – nastaví výchozí barvu popředí
    • 49 – nastaví výchozí barvu pozadí
    • 30 až 37, 90 až 99 – nastavuje barvu popředí (jako proměnná „a“)
    • 40 až 47, 100 až 109 – nastavuje barvu pozadí (jako proměnná „a“)

    U výše zmíněných rozsahů hodnot není jasné, která hodnota náleží které barvě. Proto následuje tabulka barev:

    číslo 0 1 2 3 4 5 6 7
    barva   černá  červená zelená  žlutá  modrá  purpurová tyrkysová  bílá 

    Přidám ještě několik ukázkových parametrů, abyste si mohli ověřit, že to celé chápete správně:

    • 101 je světle červené pozadí (10 = světlé pozadí, 1 = červená)
    • 34 je modré popředí (3 = popředí, 4 = modrá)
    • 93 je světle žlutá

    Ukázkové sekvence s oběma parametry:

    • \033[31;42m – červený text (31) na zeleném pozadí (42)
    • \033[42;31m – totéž
    • \x1b[32;1m – tučný (1) zelený text (32)
    • \x1b[34;4m – podtržený (4) modrý text (34)
    • \e[101;34m – světle červené pozadí (101), modrý text (34)
    • \e[44;1m – modré pozadí (44), tučný text (1)

    Poznámka: Nikdy nezapomínejte ukončovat formátování pomocí \033[0m.

    Nyní přejdeme k ukázkám z praxe.

    Bash

    link

    V Bashi lze barevný text vypisovat pomocí příkazu echo s přepínačem -e.

    echo -e "\033[31mAhoj barevný světe!\033[0m"
    
    for((i = 0; i <= 7; i++))
    do
    	echo -e "(3$i) \033[3${i}mBarevný text\033[0m a (4${i}) \033[4${i}mbarevné pozadí…\033[0m"
    done
    

    barvy konsole barvy xterm

    Python

    link

    V Pythonu můžete použít funkci print().

    print("\033[32mZelený text\033[0m")
    
    YELLOW = '\033[93m'
    END = '\033[0m'
    
    print(YELLOW + "Žlutý text!" + END)
    

    Perl

    link

    V Perlu lze také použít funkci print().

    my @colors = ("cerna", "cervena", "zelena", "zluta",
    	      "modra", "purpurova", "tyrkysova", "bila");
    
    do {
    	my $number = 37 – $#colors;
    	my $color = shift @colors;
    	print "\033[${number}m${color}, \033[1mtucna ${color}\033[0m\n";
    } while (@colors);
    

    PuTTY na Symbianu je ukázkou toho, že ne všude všechny atributy fungují. (Tučný text se zobrazí jako normální.)

    barvy putty symbian

    C/C++

    link

    Lze použít funkce printf() z C nebo std::cout z C++.

    /* C nebo C++ */
    #include <stdio.h>
    void vypis_tucne(const char* text)
    {
    	printf("\x1b[1m%s\x1b[0m\n", text);
    }
    
    /* C++ */
    #include <iostream>
    void vypis_tucne_cpp(std::string text)
    {
    	std::cout << "\e[1m" << text << "\e[0m\n";
    }
    
           

    Hodnocení: 85 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.3.2010 07:52 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V Konsoli je 8 - rudá, která je na černé lépe vidět. Škoda že není i v xterm.
    4.3.2010 08:06 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V jake konkretne?

    Svetla/Bold cervena "\033[1;31m" je IMHO videt vsude dobre.

    http://www.abclinuxu.cz/blog/idea/2008/7/ansi-ridici-sekvence
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    4.3.2010 08:32 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V KDE Konsoli. Tučná je samozřejmě vidět lépe, ale já mluvil o standardní červené.
    4.3.2010 08:37 xurfa
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    KDE? tu sračku ještě někdo používá?
    4.3.2010 08:51 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Samozřejmě (nemluvím samozřejmě o experimentální 4ce ale o poslední stabilní verzi). Kwin dohromady s Kickerem je minimálně stejně dobrý než řada jiných DE/WM.
    4.3.2010 10:21 Zopper | skóre: 14
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    KDE 4 mi jako experimentální už nepřijde. S 4.4 jsem se k němu zase vrátil, ač jsem s příchodem 4.0 odešel ke Gnome.
    "Dlouho ještě chcete soudit proti právu, stranit svévolníkům?" Ž 82,2
    4.3.2010 12:56 Xjmeno363
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    nápodobně!

    Jinak nechápu proč se někdo snaží konzoli obarvit a vylepšit -> čeho chcete dosáhnout, chcete z toho udělat GUI v GUI?
    4.3.2010 13:31 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pretože to niekomu tak môže vyhovovať? Skús napr. kontrolovať diff (alebo skôr veľa diff-ov) a uvidíš, k čomu sú farby dobré (a určite veľa ľudí má pre farby aj iné použitie a to, že ich ty nepotrebuješ, im je úplne jedno).
    5.3.2010 10:49 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Proč si myslíte že právě a jen GUI by mělo být barevné? Vždyť je to proti přírodě. I text a písmenka mají právo být barevné, nejen vobrázky a vomalovánky! Nejste vy nakonec rasista? :D
    pavlix avatar 5.3.2010 12:29 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Tahle možnost je tu pro lidi, kteří chápou :).

    Ne pro ty, co považují konzoli/terminál za sprosté slovo.

    A ani proty, co považují černobílou konzoli za výraz nadřazenosti nad uživateli barevného gui.
    Roman Horník avatar 10.3.2010 06:59 Roman Horník | skóre: 7 | Seč
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Že by např. kvůli přehlednosti?

    Mimochodem- nejseš ty náhodou *bunťák?
    I'm only wearing black until they make something darker | Debian-Linux.cz | Debian fórum
    4.3.2010 10:26 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Jaka verze KDE?
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    5.3.2010 10:47 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Funguje to v 3.5.10, asi i starších, a předpokládám že i v KDE4, ale zkoušet se mi to nechce.
    5.3.2010 11:53 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V KDE4 to prave nefunguje, proto jsem se ptal :)
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    9.3.2010 07:27 miREC
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V kde 4.3.2 to funguje no problem
    9.3.2010 08:19 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Příloha:
    Asi jsem neco nepochopil.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Marián Kyral avatar 9.3.2010 09:59 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Příloha:
    Teď jsem to zkoušel v 4.4.1 a funguje. Bohužel poslední KDE 4.3.5 jsem upgradoval o víkendu, takže to už nevyzkouším. Možná to bude nějaká regrese. V 4.3.4 a 4.3.5 jich bylo několik. A i díky tomu jsem upgradoval.
    9.3.2010 12:41 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Eh? Ale vzdyt ti to dela uplne to same. 8 proste neni barva, takze to udela bilou.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Marián Kyral avatar 9.3.2010 12:53 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Aha, já se v tom ztratil. Stačilo mi, že to byla jiná bílá ;-)
    4.3.2010 08:19 Radek
    Rozbalit Rozbalit vše Nedělejte to
    Ty jo, to je ale retro. Jistě zajímavá perlička, ale prosím prosím, opravdu to takhle nikdy v programech nedělejte. Vyrobíte úplně nepřenositelný program plný divokých nečitelných sekvencí. To si chytří lidé uvědomili už před více než 30 lety, když vytvořili věci jako termcap, terminfo a postupně řadu knihoven nad tím. Takže pokud chcete objevovat dávnou slávu textových terminálů zejména na Unixu, začal bych někde tam. Můžete třeba zkusit zadat na svém Linuxu echo $TERM a zamyslet se, co to asi znamená :-)
    4.3.2010 08:21 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Nedělejte to
    Jistě zajímavá perlička, ale prosím prosím, opravdu to takhle nikdy v programech nedělejte.
    Uzasny nazor. Protoze to nekde nefunguje, tak to nebudu vubec pouzivat :-)
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    4.3.2010 09:19 flaxa
    Rozbalit Rozbalit vše Re: Nedělejte to
    ja jsem autora prispevku pochopil jinak. Dokonce bych rekl, ze autor je takovy don Quijote v oblasti vypocetni techniky jehoz vetrne mlyny jsou nestrukturovane programy vytvorene dnes generaci Excel-Word.

    Dokonce jsem presvedcen, ze v jeho programech jsou nejen ty terminfo/termcap sequence , nybrz , ze je ma schovane ve funkcich, ktere nenesou nazev 'udelej_cervene' ale 'zvyrazni_stupen_1'.
    4.3.2010 12:01 Jindřich Makovička | skóre: 13
    Rozbalit Rozbalit vše Re: Nedělejte to
    Používat funkce za tímhle účelem jsem v shellu neviděl nikdy, ale běžně se ANSI sekvence na začátku naládují do vhodně pojmenovaných proměnných ($BLUE, $BOLD $UL, $ERROR, atd.). Což je vhodné i v případě, že pohrdnete tput a napíšete tam ty sekvence natvrdo.
    4.3.2010 13:00 Ivan
    Rozbalit Rozbalit vše Re: Nedělejte to
    Kline to pouzivejte, ale pouzivejte to to "spravnym" zpusobem. To vam treba neni divne, ze vystup z prikazu ls je barevny, ale pokud ho presmerujete do less-u, tak barvicky zmizi? Jakto, ze less nezobrazi ani barvicky ani escape sekvence?
    4.3.2010 13:32 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Nedělejte to
    V niekoľkých mojich skriptoch používam na ofarbovanie escape sekvencie a pri presmerovaní do súboru sa nepoužijú (pretože nie je problém urobiť funkciu, prípadne nastaviť premenné podľa toho, či je výstup niekam presmerovaný).
    4.3.2010 13:37 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Nedělejte to
    LOL, tak to je snad jasne, ze nebudu tlacit escape sekvence jinam nez na terminal.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Fill avatar 4.3.2010 14:32 Fill | skóre: 19 | blog: Fill | Třebíč
    Rozbalit Rozbalit vše Re: Nedělejte to
    less se dá donutit, aby barvičky zachoval: less -R
    pavlix avatar 5.3.2010 12:31 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Nedělejte to
    Pak musíš ještě vstupní aplikaci donutit, aby barvičky používala (ls --color).
    4.3.2010 13:02 zulu
    Rozbalit Rozbalit vše Re: Nedělejte to
    Uzasna neschopnost pochopit psane slovo. Upozornil bych predevsim na _takhle_. Ale samozrejme si klidne natvrdo dratuj sekvence do kodu, uz jsme neco z tve produkce videli, takze nas dalsi cunarna neprekvapi.
    4.3.2010 13:45 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Nedělejte to
    Jenomze _TAKHLE_ se to dela z urciteho duvodu a to prave proto aby clovek nemusel pouzivat sadu knihoven.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    4.3.2010 08:49 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Nedělejte to
    Ano, sekvene jako \E[0;1;4;5;7;8m^N by používal jen blázen, když tu jsou nové a lepší terminfo \E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,. Jen žertuji :)

    Nevím ale když je v shellu něco jako "Ahoj ${cred}lidi${cnorm}" tak mi to až tak "plné divokých nečitelných sekvencí" nepřipadá.
    4.3.2010 09:03 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Nedělejte to
    Souhlasim, taky jsem si rikal, kdyz jsem to cetl. Ovsem nikdy jsem to nedotahl do praxe, tj.jak neco podobneho napsat prenositelne -- krom toho, ze by se podle schopnosti terminalu (ktere mi poskytne terminfo) pak kod kosate vetvil s ruznymi excape sekvencemi.

    Predstavoval bychsi neco jako termcap_set_attr(TERMCAP_RED | TERMCAP_BOLD); /*...*/ termcap_set_attr(TERMCAP_PLAIN);. Existuje to?
    4.3.2010 13:20 zulu
    Rozbalit Rozbalit vše Re: Nedělejte to
    To sam termcap neumi, ale nad nim jsou treba curses (taky nekdy na pos.ani), kde na to mas has_colors(); init_pair(num, fg, bg); attron(COLOR_PAIR(num));
    4.3.2010 13:35 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Nedělejte to
    Knižnica curses je dostupná úplne všade?
    Josef Kufner avatar 4.3.2010 18:47 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Nedělejte to
    Ne, na mikrovlnce ji bohužel nemám... není totiž kompatibilní s otočným knoflíkem.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 4.3.2010 09:13 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Nedělejte to
    Jojo, sice to celkem funguje, ale kdo ví na jakých terminálech to poběží a zda ten terminál vůbec bude umět barvičky. Chtělo by to ještě druhý díl o tom, jak to dělat správně (ncurses, tput, terminfo,…).
    Hello world ! Segmentation fault (core dumped)
    4.3.2010 08:28 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Chjo nejak mi to nejde...

    Chtěl bych toto echo -e '\033[32;40m' ale tučným písmem...
    Jsem mimořádně obtížný případ
    4.3.2010 08:35 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Tučná není vždy tučná, často je "jen" světlá. Prostě zvýraznění (něco jako v html emphasis).
    David Watzke avatar 4.3.2010 18:53 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Tohle je ono?
    echo -e '\033[32;40m\033[1mXXX\033[0m'
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.3.2010 08:30 pet
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Více v "man console_codes".

    Zde popsané je v části "ECMA-48 Set Graphics Rendition", jinak je tam spousta jiných zajímavých a užitečných sekvencí.
    Věroš avatar 4.3.2010 13:19 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    ... což je ovšem pouze návod k Linuxové konzoli a nikoliv k obecnému terminálu.

    Že se ty sekvence mezi nějakými terminály náhodou shodují, to je věc jiná.

    PS: Včera jsem uklízel a našel jsem fotku sériového terminálu z 80 let. Tam červená fakt nefungovala a dělala nepořádek. Byl totiž černobílý....
    Školím Ansible
    4.3.2010 11:06 Karel Zak
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pouzivat primo Esc sekvence neni moc chytre a psat je primo do C (apod.) programu je pak vylozeni blbe.
      man tput
      man terminfo
    
    napriklad:
       echo "$(tput setaf 1) Red Text $(tput sgr0)"
    
    Jinak barev muze byt daleko vice, napriklad xterm nema problem s 256 barvama,
       export TERM=xterm-256color
    
    nebo
      xterm -tn xterm-256color
    
    vlastikroot avatar 4.3.2010 17:57 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Jak to udělat přes telnet? Rád bych to pokud možno zakomponoval do toho mýho chat serveru.
    Sg1-game | We will destroys the Christian's legion ... and the cross, will be inverted | IP 80.188.182.6
    4.3.2010 11:08 TM
    Rozbalit Rozbalit vše praxe
    Autore, zkuste si třeba v Konsoli, xtermu apod...:
    tput setb 1;tput setf 7;tput cup 10 10 ...
    Uvidíte, že je zbytečné se trápit s Escape sekvencemi a ještě se starat, zda terminál danou možnost podporuje. Databáze Terminfa a příslušná knihovna to udělá za vás ;-)
    vogo avatar 4.3.2010 11:15 vogo | skóre: 34 | blog: "Skládat papír" | Jihlava
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Nevím proč se všichni rozčilují, že umisťování sekvencí přímo do kódu je hnus, proč to má tedy třeba ls z coreutils také sekvence natvrdo v kódu? Mimochodem pacman-color je také vystavěn nad těmito barevnými sekvencemi. Jinak neuškodí detekce, zda stream, do kterého se zapisuje sekvence je opravu terminál... jinak potom přesměrování výstupu dopadá špatně...
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    4.3.2010 11:33 TM
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Protože na daném terminálu nemusí naše sekvence dělat přesně to co jsme zamýšleli, zatímco u nás doma to bylo OK. A také proto, že bychom měli používat nástroje, které nám systém nabízí a ne je obcházet. To že jsou k dispozici má svůj důvod.
    Vůbec se nerozčiluji a autor doufám taky ne. Prostě se mu snažím předat svoji zkušenost.
    David Watzke avatar 4.3.2010 11:38 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Vůbec se nerozčiluji a autor doufám taky ne. Prostě se mu snažím předat svoji zkušenost.
    Tak to má bejt; diskuse má být o tom, co jsem zapomněl, atp. Pak je užitečná.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.3.2010 11:53 JS
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Je nekde nejaky standardni referencni popis vsech tech escape sekvenci? Neco jako RFC treba.
    David Watzke avatar 4.3.2010 12:24 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Na wiki je stránka ANSI escape code. Jinak hledej standard ISO/IEC 6429 (link ukazuje na preview).
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    7.3.2010 08:28 ivan
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    www.vt100.net
    4.3.2010 13:24 maertien(neprihlasen)
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    pekny clanek, thx
    Marián Kyral avatar 4.3.2010 22:25 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Ono když se jednotlivé barvy nadefinují jako proměnné, tak se s tím hned pracuje mnohem lépe.

    Barevný prompt:
    
    
    $ cat bin/prompt 
    #!/bin/bash                                        
    
    ##########
    # prompt #
    ##########
    # prompt is a template-like program designed to simplify the process of colourizing one's prompt.
    # By analyzing the variables, it is easy to identify what ANSI colour sequences match up with which colour.
    # Thus, modifying one's bash prompt is a simple matter of going through the variables and inserting the colour of choice.
    #                                                                                                                        
    # When the script is modified to your liking, you should place it a useful place (like ~/bin/).                          
    # Then replace PS1="..." in your bootup file (~/.bashrc or ~/.bash_profile) with PS1=`~/bin/prompt` (those are backticks!)
    #                                                                                                                         
    # Only known to work as expected with bash                                                                                
    #                                                                                                                         
    # No licensing or copyright is placed on this script. Do with it as you wish.                                             
    
    ################################################
    # THERE SHOULD BE NO NEED TO EDIT THIS SECTION #
    ################################################
    
    #$normal will reset the colour to the default, use it to stop using a certain colour (see "prompt parts")
    normal="\[\e[0m\]"                                                                                       
    
    # # # # # # #
    #BACKGROUNDS
    # # # # # # #
    blackbg=";40m\]"
    redbg=";41m\]"
    greenbg=";42m\]"
    brownbg=";43m\]"
    bluebg=";44m\]"
    purplebg=";45m\]"
    cyanbg=";46m\]"
    greybg=";47m\]"
    
    ############################################################################################
    # THERE SHOULD BE NO NEED TO EDIT THIS SECTION (UNLESS YOU DO NOT WANT A BLACK BACKGROUND) #
    ############################################################################################
    # # # # # # #
    #FOREGROUNDS
    # # # # # # #
    black="\[\e[0;30$blackbg"
    redfaint="\[\e[0;31$blackbg"
    greenfaint="\[\e[0;32$blackbg"
    brownfaint="\[\e[0;33$blackbg"
    bluefaint="\[\e[0;34$blackbg"
    purplefaint="\[\e[0;35$blackbg"
    cyanfaint="\[\e[0;36$blackbg"
    greyfaint="\[\e[0;37$blackbg"
    
    grey="\[\e[1;30$blackbg"
    red="\[\e[1;31$blackbg"
    green="\[\e[1;32$blackbg"
    yellow="\[\e[1;33$blackbg"
    blue="\[\e[1;34$blackbg"
    pink="\[\e[1;35$blackbg"
    cyan="\[\e[1;36$blackbg"
    white="\[\e[1;37$blackbg"
    
    ##################################
    # EDIT THIS STUFF TO YOUR LIKING #
    ##################################
    # # # # # # #
    #PROMPT PARTS
    # # # # # # #
    prompt_opening_brace="$yellow[$normal"
    prompt_closing_brace="$yellow]$normal"
    
    prompt_date="\d"
    prompt_hostname_short="$blue\h$normal"
    prompt_hostname_long="\H"
    prompt_jobs="\j"
    prompt_terminal="\l"
    prompt_shellname="\s"
    prompt_time_24="\t"
    prompt_time_12="\T"
    prompt_time_12_am_pm="\@"
    prompt_username="$green\u$normal"
    prompt_version="\v"
    prompt_version_patchlevel="\V"
    prompt_pwd_long="\w"
    prompt_pwd_short="$red\W$normal"
    prompt_history_number="\!"
    prompt_session_number="\#"
    prompt_usertype_sign="\\$"
    prompt_git_branch="$white\$(__git_ps1)$normal"
    
    # # # # # # # #
    #FINAL PROMPT
    # # # # # # # #
    echo -n "$prompt_opening_brace$prompt_time_24 $prompt_username@$prompt_hostname_short $prompt_pwd_short$prompt_git_branch$prompt_closing_brace$prompt_usertype_sign "
    
    Amarok avatar 9.3.2010 18:31 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Co kdyz nechci pozadi cerne (blackbg), ale pruhledne? Kdyz timhle skriptem nastavim prompt, tak ho mam na cernem pozadi, coz vypada spatne, jelikoz vsechen vystup mam jinak pruhledny (na pozadi urxvt terminalu mam grafiku).
    GNUniverse - May the source be with you...
    Marián Kyral avatar 9.3.2010 20:34 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Zkus si tam přidat tento řádek a následně změnit $blackbg za $transparentbg
    transparentbg="m\]"
    Amarok avatar 17.3.2010 19:12 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Jde to, dik.
    GNUniverse - May the source be with you...
    Amarok avatar 5.3.2010 18:12 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pekny strucny prehled/uvod. Nebylo by ale od veci zminit, ze je mozno v nekterych terminalech pouzivat i 256 barev + nejake priklady.
    GNUniverse - May the source be with you...
    6.3.2010 01:14 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Máte dvě možnosti, jak napsat escape, buď \033 (umístění znaku escape v ASCII tabulce zapsáno v osmičkové soustavě je 33), \x1b (umístění znaku v ASCII tabulce zapsáno v šestnáctkové soustavě je 1B) nebo \e .....

    Máme dvě možnosti: a, b nebo c ... :)
    David Watzke avatar 6.3.2010 15:03 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    :-) to je tak, když něco měním po napsání
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    6.3.2010 18:18 aceman | skóre: 26
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pokial viem tak minimalne v bashi sa toto formatovanie da zadavat v tvare ESC[ [i];a[;b]m , kde A (30-37) a B (40-47) su farby popredia a pozadia tak ako popisuje clanok. Intenzita farby I (0-8) sa zapisuje ako prvy nepovinny parameter. Clanok ale uvadza, ze hodnoty 0-8 by mohli byt zapisane do parametra A. Resp. ak sa do A zapise intenzita a potom do B farba popredia, clanok nespomina moznost tretieho parametra kam sa zada farba pozadia. Ako to teda je?
    David Watzke avatar 9.3.2010 15:35 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Když chceš tři věci najednou, musíš to udělat takhle:
    \e[A;Bm\e[Cm   tradáá   \e[0m
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    9.3.2010 20:34 aceman | skóre: 26
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Vsimnite si, ze aj predchadzajuci prispevok s vypisom kodu skriptu prompt jma definicie v tvare \e[A;B;Cm , kde A a B su povinne, C nepovinne. A = intenzita, B=popredie, C=pozadie. A ide o bash. Zeby to teda bolo v roznych programoch rozdielne?
    David Watzke avatar 9.3.2010 21:15 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Hm, to nevím, ale funguje mi to. O tom jsem ani nevěděl, abych pravdu řek. Ono to ale není že A, B, C má nějaký pořadí, můžeš to tam nacpat jak chceš.
    # 3x to samý
    \e[1;33;43m
    \x1b[33;1;43m
    \033[43;1;33m
    Evidentně tam lze zadat libovolný množství parametrů.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    15.3.2010 20:40 aceman | skóre: 26
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    To by davalo zmysel. Mozno preto su jednotlive hodnoty z roznych intervalov a potom su jednoznacne bez ohladu na poradie.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.