使用bash脚本生成边界变化的字符串

问题描述 投票:0回答:1

我想使用bash脚本生成长度在1-4之间的字符串。我知道如何创建具有设定长度的字符串,但想知道以下命令是否有细微变化,以使其在1-4个长度之间进行选择。

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 4

这将创建具有标准长度为4的数字/字母的字符串。有什么办法可以满足我的需要?

string bash random
1个回答
0
投票

不是最聪明的解决方案,但是我认为应该可以使用

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c "$(shuf -i 1-4 -n 1)"

0
投票

很简单:也使用随机数/字符生成器来生成head -c的参数。

bash中,您可以将内置变量$RANDOM与算术表达式一起使用。随机数不是那么好,但是对于大多数情况来说足够了:

< /dev/urandom tr -dc A-Za-z0-9 | head -c "$((RANDOM % 4 + 1))"

如果需要更好的随机性或可移植脚本,请再次使用/dev/urandom

< /dev/urandom tr -dc A-Za-z0-9 | head -c "$(< /dev/urandom tr -dc 1-4 | head -c 1)"
© www.soinside.com 2019 - 2024. All rights reserved.