Anna_Repina
@Anna_Repina
Хочу все знать

Как написать генератор серийных номеров?

Всем привет!
Нашла вот такой скрипт для генератора паролей (Рандомно)
SYMBOLS=""
for symbol in {A..Z} {a..z} {0..9}; do SYMBOLS=$SYMBOLS$symbol; done
SYMBOLS=$SYMBOLS'!@#$%&*()?/\[]{}-+_=<>.,'
# Строка со всеми символами создана.
# Теперь нам надо в цикле с количеством итераций равным длине пароля
# случайным образом взять один символ и добавить его в строку, содержащую пароль.
PWD_LENGTH=16  # длина пароля
PASSWORD=""    # переменная для хранения пароля
RANDOM=256     # инициализация генератора случайных чисел
for i in `seq 1 $PWD_LENGTH`
do
PASSWORD=$PASSWORD${SYMBOLS:$(expr $RANDOM % ${#SYMBOLS}):1}
done
echo $PASSWORD


Хотела бы знать, можно ли его как-то доработать, что бы генерировались серийные номера последовательно на основе того что уже есть?

Например существуют уже SN X1234V1-0024, X1234V1-0025, X1234V1-0026
Как сделать так, что бы скрипт автоматически сгенерил все последующие до X1234V1-9999?
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
count=0
while [ $count -le 9999 ]; do
  count=$(( $count + 1))
  printf "X1234V1-%04d\n" $count
done
Ответ написан
@xibir
Слишком сложная у вас генерация пароля, он генерится в одну строчку:
password=`tr -dc 'A-Za-z0-9!@#$%&*()?/\\\[\]\{\}\-+_=<>.,' < /dev/urandom | head -c16`
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы