-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrandom
More file actions
74 lines (65 loc) · 2.62 KB
/
random
File metadata and controls
74 lines (65 loc) · 2.62 KB
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
#! /usr/bin/env bash
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Генератор случайных значений.
# author: VlaSard
# github: https://github.com/VlaSard
# random
#
# DESCRIPTION:
# Генератор случайных значений.
#
# Генерирует случайное выражение, заданной длины, состоящее из чисел,
# прописных и строчных букв.
#
# Длина строки задается параметром при запуске
#
# USAGE:
# random [options]
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-= VARIABLES =-=-=-=-=-=-=-
prog_name="${0##*/}"
# -=-=-=-=-=-=-= MESSAGES =-=-=-=-=-=-=-=-
msg_help_NoParam=(
"${prog_name}: пропущен операнд."
"По команде «${prog_name} [-h | --help]» можно получить дополнительную информацию."
)
msg_help_BadParam=(
"${prog_name}: не правильно задан параметр."
"По команде «${prog_name} [-h | --help]» можно получить дополнительную информацию."
)
msg_help_Param=(
"Использование: ${prog_name} [ПАРАМЕТР]"
"Генерирует случайное значение, заданной длины, состоящее из чисел, прописных и строчных букв."
""
"[число]\t\tдлина генерируемого случайного значения"
"-h\t--help\tпоказать эту справку и выйти"
)
# -=-=-=-=-=-=-= FUNCTIONS =-=-=-=-=-=-=-
# генератор строки случайных символов
RandomStr() {
local matrix="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
while [ "${n:=1}" -le "${1}" ]; do
RandomStr="$RandomStr${matrix:$((RANDOM % ${#matrix})):1}"
((n += 1))
done
return
}
# вывод справочной информации
PrintMsg() {
printf '%b\n' "${@}"
exit
}
# -=-=-=-=-=-=-=-= MAIN =-=-=-=-=-=-=-=-
# проверка наличия параметров в командной строке
[ -z "${1}" ] &&
PrintMsg "${msg_help_NoParam[@]}"
# проверка опций
[[ "${1}" == "-h" || "${1}" == "--help" ]] &&
PrintMsg "${msg_help_Param[@]}"
# проверка параметров
[[ "$#" -eq 1 && "${1%%[![:digit:]]*}" = "$1" ]] ||
PrintMsg "${msg_help_BadParam[@]}"
# генерируем и выводим в консоль случайную фразу
RandomStr "${1}"
echo "${RandomStr}"