如何在 Bash 中生成随机字符串 ?
随机字符串是随机生成的字符序列,而不是由固定的模式或预先决定的序列。随机字符串通常用作密码、密钥或标识符。Bash 中生成随机字符串非常简单和便利,Bash 中可以使用几种内置程序和命令生成随机字符串的。在本文中,我们将探索实现这一目标的各种方法,并提供相关的示例。 Bash shell 提供了一个名为 $RANDOM 的特殊变量,它返回 0 到 32767 之间的随机数。您可以利用这个变量来生成一个随机字符串。 但是,这只会返回一个数字。如果您想要一个包含字符的字符串,那么您可能需要更具创造性一些。 该命令使用当前时间戳(以纳秒为单位),并将其输送到 sha256sum 命令,然后取前 10 个字符。 /dev/urandom 是一个设备文件,它提供了一个加密安全的随机数源。 例如,生成一个长度为 10 的随机字符串 相关参数说明如下: 可以使用 你也可以使用 pwgen 是一个专门用来生成密码的工具,也就是说可以产生随机字符串。如果你没有安装它,你可以通常通过包管理器(apt-get、 yum、 brew)获取安装。 例如,生成一个长度为 10 的随机字符串。 您可以将 bash 数组与 $RANDOM 组合以生成随机字符串。
1. 使用 $RANDOM 变量
echo $RANDOMecho $(date +%s%N) | sha256sum | head -c 102. 使用 /dev/urandom
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 13. 使用 openssl
openssl 命令和 base64 编码函数,例如:生成长度为 10 的随机字符串(包括字母、数字和特殊字符)openssl rand -base64 10tr 命令删除不希望包含的任何字符。例如:生成一个长度为 10 的随机字符串(只包含大写字母和数字)openssl rand -base64 10 | tr -dc 'A-Z0-9'4. 使用 pwgen
pwgen 10 15. 使用 Bash Arrays
ARRAY=('a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z')
RAND_STR=""
for i in {1..10}; do
RAND_STR+="${ARRAY[$RANDOM % ${#ARRAY[@]}]}"
done
echo $RAND_STR我的开源项目
