-----------------------------------------------------------
-
- Beiträge: 174
- Registriert: 29.04.2012 22:55:06
-----------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 11:01:19, insgesamt 2-mal geändert.
Re: Farbige bash-Ausgabe
Pack' die Escape-Sequenzen einfach in das Array mit rein:(Ich hab' auch 'ne Subshell dazu gebaut, weil das Berechnen zumindest hier nicht ohne ging.)
Bei der Anwendung als Bildschirmschoner solltest du beachten, dass es aehnlich wie eine Endlosschleife mit Volllast auf der CPU laeuft. Das "schonen" in Bildschirmschoner koennte dabei ein wenig zu kurz kommen.
So als Idee haette ich da(die Bash braucht's nur wegen read -n1) Das wuerde das aktuelle TTY sperren, den Lauftext anwerfen und auf tty10 schreiben und anschliessend dorthin wechseln. Durch die Eingabe eines Zeichens wird der Lauftext abgebrochen und zur urspruenglichen Konsole zurueckgekehrt. Ungetestet. Man sollte vielleicht abfangen, ob's tatsaechlich ein VT ist, und tty10 durch eine Konbination aus openvt(1) und deallocvt(1) ersetzen.
Gruss Cae
Code: Alles auswählen
$ yes 'c=(" " " " " " "\e[32m02\e[m" "\e[34m1\e[m"); printf "${c[$(($RANDOM%55))]}"' | bash
Bei der Anwendung als Bildschirmschoner solltest du beachten, dass es aehnlich wie eine Endlosschleife mit Volllast auf der CPU laeuft. Das "schonen" in Bildschirmschoner koennte dabei ein wenig zu kurz kommen.
So als Idee haette ich da
Code: Alles auswählen
#!/bin/bash
thisvt="$(tty)"
vlock &
yes | bash >/dev/tty10 & # siehe oben
chvt 10
read -rn1 fnord </dev/tty10 # blockt
kill $!
chvt "$thisvt"
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier