Hallo Ubuntuusers,
in den Tiefen meiner SSD habe ich ein nettes Bash Script gefunden, welches den allseits bekannten Pipes Screensaver von Windows in 2d in die Shell zeichnet. Nur manchmal tauchen komische Zeichenfolgen auf.. :/ Ich verstehe das Script nur teilweise und kann es daher auch nicht selber anpassen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #!/bin/bash declare -i f=75 s=13 r=2000 t=0 c=1 n=0 l=0 declare -ir w=$(tput cols) h=$(tput lines) declare -i x=$((w/2)) y=$((h/2)) declare -ar v=( [00]="\x83" [01]="\x8f" [03]="\x93" [10]="\x9b" [11]="\x81" [12]="\x93" [21]="\x97" [22]="\x83" [23]="\x9b" [30]="\x97" [32]="\x8f" [33]="\x81" ) OPTIND=1 while getopts "f:s:r:h" arg; do case $arg in f) ((f=($OPTARG>19 && $OPTARG<101)?$OPTARG:$f));; s) ((s=($OPTARG>4 && $OPTARG<16 )?$OPTARG:$s));; r) ((r=($OPTARG>0)?$OPTARG:$r));; h) echo -e "Usage: pipes [OPTION]..." echo -e "Animated pipes terminal screensaver.\n" echo -e " -f [20-100]\tframerate (D=75)." echo -e " -s [5-15]\tprobability of a straight fitting (D=13)." echo -e " -r LIMIT\treset after x characters (D=2000)." echo -e " -h\t\thelp (this screen).\n" exit 0;; esac done tput smcup tput reset tput civis while ! read -t0.0$((1000/$f)) -n1; do # New position: (($l%2)) && ((x+=($l==1)?1:-1)) ((!($l%2))) && ((y+=($l==2)?1:-1)) # Loop on edges (change color on loop): ((c=($x>$w || $x<0 || $y>$h || $y<0)?($RANDOM%7-1):$c)) ((x=($x>$w)?0:(($x<0)?$w:$x))) ((y=($y>$h)?0:(($y<0)?$h:$y))) # New random direction: ((n=$RANDOM%$s-1)) ((n=($n>1||$n==0)?$l:$l+$n)) ((n=($n<0)?3:$n%4)) # Print: tput cup $y $x echo -ne "\033[1;3${c}m\xe2\x94${v[$l$n]}" (($t>$r)) && tput reset && tput civis && t=0 || ((t++)) l=$n done tput rmcup |
So sieht das Ergebnis mitsamt dieser Zeichenfolge aus: