#!/bin/bash
#
#
cprint () {
typ=$1
case $typ in
v) alpha="aeiouy" ;;
c) alpha="bcdfghjklmnpqrstvwxz" ;;
V) alpha="AEIOUY" ;;
C) alpha="BCDFGHJKLMNPQRSTVWXZ" ;;
n) alpha="0123456789" ;;
*) echo "** Undefined **" ; exit 1 ;;
esac
len=${#alpha}
r=$((RANDOM%len))
echo -en ${alpha:r:1}
}
rprint () {
code=$1
for i in $(seq 1 ${#code})
do
c=${code:i-1:1}
cprint $c
done
echo
}
rprint "cvccvc"
rprint "cvcvvc"
rprint "Cvccvc"
rprint "Vccvcvc"
rprint "Cvnvn"
Это решение легко изменить, чтобы напечатать другую последовательность, его легко переопределить, если вы не согласны с вопросом о y, нужно äöü или UPPERCASE и т. Д.
Экспериментальный результат:
gohhec
voteup
Wuwjut
Utpycoq
Va6a6
man bash говорит о СЛУЧАЙНОМ:
Каждый раз, когда на этот параметр ссылаются, случайное целое число от 0 до 32767 ...
Таким образом, если взять по модулю RANDOM % X
, а X не является степенью 2, у нижних остатков будет больше шансов, чем у одного.Это не должно быть важно в вашем случае, если вы не выходите за пределы своей группы персонажей или не используете ее в зонах повышенной безопасности.:)