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
No Comments