runtxt.sh

Hier kann ein Text $1 in einem textbasierten Programm durchlaufen. Hierbei lässt sich die Länge der anzuzeigenden Zeichen mit $2 bestimmen und die Schnelligkeit in ms in $3. Ideal für z. B. Displays mit begrenzter Ausgabelänge. Hier kann der Text ganz einfach durchlaufen. $1 --> Text, der gescrollt wird   $2 --> Blockgröße (sichtbare Länge)   $3 --> Pausenzeit pro Schritt (in ms) 

 HOWTO: 

 $0 "Hallo Welt!" 8 100 

 Beispiel: 

 text="System läuft normal, keine Vorkommnisse"

display="16"

ms="120"

bash src/runtxt.sh "$text" "$display" "$ms" 

   

 Script: 

 #!/bin/bash

if [ -z "$3" ]; then

 exit 1

fi

text="$1"

block_size="$2"

sleep_time=$(echo "scale=3; $3 / 1000" | bc)

# Den Text erweitern, um eine ausreichende Anzahl von Leerzeichen für nahtloses Scrollen hinzuzufügen

padded_text="$(printf '%*s' $block_size)${text}"

padded_length=${#padded_text}

while true; do

 for (( i=0; i<padded_length; i++ )); do

 # Substring von i bis i+block_size Zeichen

 if (( i + block_size <= padded_length )); then

 substring="${padded_text:i:block_size}"

 else

 substring="${padded_text:i}"

 remaining_length=$((block_size - ${#substring}))

 substring="${substring}${padded_text:0:remaining_length}"

 fi

 echo -ne "$substring\r"

 sleep "$sleep_time"

 done

done

exit 0 

  