-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfake-deshuffle
executable file
·89 lines (80 loc) · 2.09 KB
/
fake-deshuffle
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/bash
SCRIPTNAME=$(basename "$0")
fake_deshuffle_one_by_one() {
word_len="${#string}"
for ((j=0; j<$word_len; j++)); do
for i in {1..5}; do
printf "${rdm_chars:$(( RANDOM % ${#rdm_chars} )):1}"
sleep "$speed"
printf "\033[1D"
done
printf "${string:$j:1}"
done
}
fake_deshuffle_all() {
word_len="${#string}"
for ((k=0; k<$word_len; k++)); do
len_left=$((word_len-k))
for ((i=0; i<4; i++)); do
for ((j=0; j<$len_left; j++)); do
printf "${ncl}${rdm_chars:$(( RANDOM % ${#rdm_chars} )):1}"
done
sleep "$speed"
printf "\033[${len_left}D"
done
printf "${string:$k:1}"
done
}
# Default values
default_speed="0.06"
default_rdm_chars="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюяΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω"
# Initialize variables
speed=$default_speed
rdm_chars=$default_rdm_chars
one_by_one=false
# Parse arguments
while getopts ":h1t:c:s:" opt; do
case ${opt} in
h )
echo "Usage: $SCRIPTNAME [-1] [-t value] [-c value] -s value"
echo " -h Display help"
echo " -1 Set one_by_one flag"
echo " -t value Set speed value (default: $default_speed)"
echo " -c value Set random characters to use (default: $default_rdm_chars)"
echo " -s value Set string value (mandatory)"
exit 0
;;
1 )
one_by_one=true
;;
t )
speed=$OPTARG
;;
c )
rdm_chars=$OPTARG
;;
s )
string=$OPTARG
;;
\? )
echo "Invalid option: -$OPTARG" 1>&2
exit 1
;;
: )
echo "Invalid option: -$OPTARG requires an argument" 1>&2
exit 1
;;
esac
done
# Check if -s is provided
if [ -z "$string" ]; then
echo "Error: -s is a mandatory argument" 1>&2
echo "Usage: script.sh [-1] [-t value] [-c value] -s value"
exit 1
fi
if $one_by_one; then
fake_deshuffle_one_by_one
else
fake_deshuffle_all
fi
printf "\n"