Portál AbcLinuxu, 15. července 2025 09:57
"Na standardní chybový výstup je zapsáno "$TEST: $RESULT\n", kde: $TEST je cesta adresáře obsahující cmd-given relativní k TEST_DIR (v kanonickém tvaru bez prefixu ./). $RESULT je OK, pokud jsou soubory {stdout,stderr,status}-delta prázdné; v opačném případě FAILED."-toto mám a pak další bod
Pokud je standardní chybový výstup připojen na terminál, jsou řetězce OK vypisovány zeleně a řetězce FAILED vypisovány červeně.Nevím, co to přesně znamená a jak to detekovat, resp. jakou zadat podmínku pro barevný výpis. Našla jsem pro testování:
-t fd deskriptor fd je spojen s terminálemale nevím, jak to použít, ani jestli je to správné řešení.
if test -t 2; then # stderr is a tty else # stderr is not a tty fiPokud jde o barvení, tak ho lze udělat snadno za předpokladu dnes běžného terminálu, i.e. použít natvrdo běžné escape sekvence pro barvy. Nebo správně pro všechny terminály, což vyžaduje dotázat se databáze informací o terminálech na vlastnosti toho, do kterého to vypisuje. Snadné řešení vypadá třeba:
echo $'\e[31mRoses are red\e[0m\n\e[32mMould is green\e[0m'Správné vyžaduje vzít výstup (např.)
tput fcolorsprávně ho rozparsovat, doplnit na vyznačená místa číslo barvy a použít... V shellu dost opruz.
if [ -t 1 ] then vypis barevne else vypis nebarevne ;o) fi
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.