Leggendo i cinguettii ho notato un post interessante sull'utilizzo di bash per la generazione di un rudimentale effetto Matrix, intendo quelle schermate in cui dei caratteri verdi scorrevano verso il basso...
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
provare per credere.
Guardandolo con il mio amico/collega Gianni per decifrarne il funzionamento e tratte le varie conclusioni ho raccolto la sua sfida: Adesso andrebbe modificato per far comparire i numeri pari di un colore ed i dispari di un altro colore
Nessun problema! dico io, aggiungo un grep dopo aver impartito il valore always all'opzione --color per colorare anche in caso di output in pipe:
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;31" grep --color=always "[02468]" | GREP_COLOR="1;32" grep --color=always "[13579]"
Ops... non funziona... ma perché?
Perché ho scelto di colorare di rosso i numeri pari e poi di verde i dispari, allora provo ad invertire, dispari rosso e pari verde:
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;31" grep --color=always "[13579]" | GREP_COLOR="1;32" grep --color=always "[02468]"
La trappola era la presenza delle cifre dispari nella sequenza di caratteri che colorano l'output, tale sequenza veniva di nuovo colorata dal secondo grep.
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
provare per credere.
Guardandolo con il mio amico/collega Gianni per decifrarne il funzionamento e tratte le varie conclusioni ho raccolto la sua sfida: Adesso andrebbe modificato per far comparire i numeri pari di un colore ed i dispari di un altro colore
Nessun problema! dico io, aggiungo un grep dopo aver impartito il valore always all'opzione --color per colorare anche in caso di output in pipe:
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;31" grep --color=always "[02468]" | GREP_COLOR="1;32" grep --color=always "[13579]"
Ops... non funziona... ma perché?
Perché ho scelto di colorare di rosso i numeri pari e poi di verde i dispari, allora provo ad invertire, dispari rosso e pari verde:
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;31" grep --color=always "[13579]" | GREP_COLOR="1;32" grep --color=always "[02468]"
La trappola era la presenza delle cifre dispari nella sequenza di caratteri che colorano l'output, tale sequenza veniva di nuovo colorata dal secondo grep.
SCUSI MA COME SI CHIAMA QUEL PROGRAMMA IN FOTO????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
RispondiElimina