如何在特定范围内生成随机字符串(bash)

如何在特定范围内生成随机字符串(bash),bash,Bash,我的bash脚本中有一个变量 symbols="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVYXWZ~#$&_+-=/\\" 如何从10-15范围内的这一行中获得随机数 例如,在python中,我可以 password = ''.join(random.sample(symbols, random.randint(10, 15))) 产量 # YeHvTBX4qVrzK9 # NYcd-HR0wVvE5Cg6 #

我的bash脚本中有一个变量

symbols="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVYXWZ~#$&_+-=/\\"
如何从10-15范围内的这一行中获得随机数

例如,在python中,我可以

password = ''.join(random.sample(symbols, random.randint(10, 15)))
产量

# YeHvTBX4qVrzK9
# NYcd-HR0wVvE5Cg6
# mlS=uMPieqR

在bash中,如何才能做到这一点?

使用$RANDOM特殊变量和参数展开从字符串中提取符号

#! /bin/bash

symbols='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVYXWZ~#$&_+-=/\'  # Stupid SO: '
count_symbols=${#symbols}
(( length = RANDOM % 6 + 10 ))
password=""
for i in $(seq 1 $length) ; do
    password+=${symbols:RANDOM % count_symbols:1}
done
echo "$password"