Puncte:4

Păstrați culorile în consola unui script Bash în timpul înregistrării

drapel kp

Aș dori să păstrez culorile, în consolă, ale unui script de ieșire Bash, în timp ce îl înregistrez și să-l fac eco în consolă.

Când rulez un script cu următorul cod, pierd culorile în consolă.

LOG_FILE="Merge.log"
atingeți $LOG_FILE

exec > >(tee $LOG_FILE) 2>&1;

Iată capturi de ecran pentru a fi clar:

Ecranul unu și doi sunt cu înregistrarea dezactivată (comentată) în script:

Ecran-1:

Ecranul unu

Ecran-2:

Ecranul doi

Ecranele trei și patru sunt cu înregistrarea activată în script:

Ecran-3:

Ecranul trei

Ecran-4:

Ecranul patru

Am cautat destul de mult dar nu am gasit nicio solutie. Mulțumiri.

OS: Ubuntu MATE 21.04

Versiunea Bash: 5.1.4(1)-release (x86_64-pc-linux-gnu)

drapel hr
Nu cred că este ceva util în Stackoverflow Q&A pe care l-ați legat - de fapt, dacă citiți comentariile, ambele răspunsuri postate fac exact *opusul* a ceea ce este întrebat (adică *eliminați* codurile de culoare din ieșirea colorată) . Problema aici este că orice proces care scrie în stdout / stderr (redirecționat) dvs. detectează că destinația lor nu mai este un terminal și elimină culorile înainte ca datele să ajungă chiar la comanda `tee`.
Jags avatar
drapel kp
@steeldriver tocmai a eliminat legătura StackOverflow. Mulțumiri.
Bruni avatar
drapel cn
Poate că acest lucru vă ajută: https://askubuntu.com/questions/647805/how-to-print-the-output-of-tree-to-pdf-without-losing-the-color
Jags avatar
drapel kp
@bruni Mulțumesc. Ai vrut să spui, folosește `aha`? „Pentru că nu pot să-mi dau seama cum să folosesc `aha` cu `tee`.
Bruni avatar
drapel cn
@Jags da, asta am vrut să spun, dar ai dreptate, probabil că nu ar funcționa cu tee. Am ratat că tricou-ul elimină și culoarea de pe consolă.
Bruni avatar
drapel cn
Încă o încercare, ceva în rândurile răspunsului acceptat la acesta: https://superuser.com/questions/352697/preserve-colors-while-piping-to-tee
Jags avatar
drapel kp
@bruni Tocmai mi-am eliminat comentariul anterior. La început am crezut că funcționează, dar de fapt primesc erori. Nu generează niciun jurnal.
Jags avatar
drapel kp
@bruni Eroarea pe care o primesc în `Merge.log` și în consolă, de asemenea: `nu s-a putut executa "exec": nu există un astfel de fișier sau director | în timp ce se execută | "spawn -noecho exec" | („eval” corp linia 1) | invocat din interior` `"eval [list spawn -noecho] $argv" | invocat din interior | "dacă {[șir de comparare [lindex $argv 0] "-p"] == 0} {` `# pipeline | set stty_init "-echo" | eval [list spawn -noecho] [lrange $argv 1 end] | clo ..." | (fișierul „/usr/bin/unbuffer” linia 13)`
Bruni avatar
drapel cn
@Jags a meritat încercat... Ați încercat să utilizați `script` ca în răspunsul acceptat la acesta: https://stackoverflow.com/questions/3515208/can-colorized-output-be-captured-via-shell- redirecţiona
Jags avatar
drapel kp
@bruni Da, am dat peste acel fir StackOverflow chiar înainte de a posta această întrebare, dar nu mi-am putut da seama cum să-l modific în cazul meu de utilizare pentru a-l încerca chiar. Mulțumiri.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.