-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrwg.sh
72 lines (67 loc) · 2.02 KB
/
rwg.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
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
#!/bin/bash
#random word generator
SCRIPT=$0
#
#associates nanoseconds with a time
#to be used when you generato more than one word
now=$(date +%N | cut -c 9)
case $now in
0) delayClock=0.15 ;;
1) delayClock=0.16 ;;
2) delayClock=0.17 ;;
3) delayClock=0.18 ;;
4) delayClock=0.19 ;;
5) delayClock=0.2 ;;
6) delayClock=0.21 ;;
7) delayClock=0.22 ;;
8) delayClock=0.23 ;;
*) delayClock=0.24 ;;
esac
word_number=$(cat dictionary-file | wc -l)
name_number=$(cat names-only | wc -l)
readarray -t word < dictionary-file
readarray -t name < names-only
if [ "$#" -eq 0 ]; then
randomNumber=$(date +%6N | sed 's/^0*//')
#forces number to be less than or equal to number of lines
#in dictionary
until [ "$randomNumber" -le "$word_number" ];do
#removes leading zeroes from number string
randomNumber=$(date +%6N | sed 's/^0*//')
done
echo "${word[$randomNumber]}"
exit 0
elif [[ "$1" =~ ^[1-9] ]]; then
for ((i=0; i < $1; i++)); do
randomNumber=$(date +%6N | sed 's/^0*//')
until [ "$randomNumber" -le "$word_number" ]; do
randomNumber=$(date +%6N | sed 's/^0*//')
done
echo "${word[$randomNumber]}"
#adds delay in execution to add unpredictability
sleep "$delayClock"
done
elif [ "$1" = "-n" ]; then
if [[ "$2" =~ ^[1-9] ]]; then
for ((i=0; i < $2; i++)); do
randomNumber=$(date +%5N | sed 's/^0*//')
until [ "$randomNumber" -le "$name_number" ]; do
randomNumber=$(date +%5N | sed 's/^0*//')
done
echo "${name[$randomNumber]}"
sleep "$delayClock"
done
else
randomNumber=$(date +%5N | sed 's/^0*//')
until [ "$randomNumber" -le "$name_number" ]; do
randomNumber=$(date +%5N | sed 's/^0*//')
done
echo "${name[$randomNumber]}"
exit 0
fi
else
echo "For dictionary words:"
echo -e "\t${SCRIPT##*/} [number-of-words]"
echo "For names:"
echo -e "\t${SCRIPT##*/} -n [number-of-names]"
fi