-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnixritz-uni.sh
executable file
·41 lines (35 loc) · 2.01 KB
/
nixritz-uni.sh
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
#!/usr/bin/env bash
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock 2>/dev/null | \
awk -v delay=0.01 'BEGIN {
srand(); # Initialisiert den Zufallszahlengenerator basierend auf der aktuellen Zeit
}
{
line = ""; # Temporärer String zur Konstruktion der Ausgabe
for (i = 1; i <= length($0); i++) {
char = substr($0, i, 1); # Extrahiert das aktuelle Zeichen
if (char ~ /[^ ]/) { # Prüft, ob das Zeichen kein Leerzeichen ist
# Definiert die Unicode-Bereiche und wählt zufällig einen Bereich aus
ranges[1] = "0x2600,0x26FF"; # Verschiedene Symbole (z. B. ☀️, ☂️)
# ranges[2] = "0x1F300,0x1F5FF"; # Ornamentale Dingbats (z. B. 🌸, 🎈)
# ranges[3] = "0x1F680,0x1F6FF"; # Transport und Karte (z. B. 🚀, 🚗)
# ranges[4] = "0x1F4F0,0x1F4FF"; # Bürobedarf (z. B. 📖, 📷)
ranges[2] = "0x1F600,0x1F64F"; # Emoticons (z. B. 😀, 😎)
# Wählt zufällig einen Bereich aus
selected_range = ranges[int(rand() * length(ranges)) + 1];
split(selected_range, bounds, ",");
lower = strtonum(bounds[1]); # Untere Grenze des Bereichs
upper = strtonum(bounds[2]); # Obere Grenze des Bereichs
# Generiert ein zufälliges Unicode-Zeichen innerhalb des Bereichs
unicode = sprintf("%c", lower + int(rand() * (upper - lower + 1)));
# Zufällige Farbe für das Zeichen
color = sprintf("\033[38;5;%dm", 16 + int(rand() * 240)); # ANSI 256-Farbpalette
# Fügt das farbige Unicode-Zeichen zur Zeile hinzu
line = line color unicode "\033[0m"; # "\033[0m" setzt die Farbe zurück
# Verzögerung zwischen der Ausgabe von Zeichen
system("sleep " delay);
} else {
line = line char; # Leerzeichen bleiben unverändert
}
}
print line; # Gibt die vollständig verarbeitete Zeile aus
}'