我想使用bash脚本生成长度在1-4之间的字符串。我知道如何创建具有设定长度的字符串,但想知道以下命令是否有细微变化,以使其在1-4个长度之间进行选择。
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 4
这将创建具有标准长度为4的数字/字母的字符串。有什么办法可以满足我的需要?
不是最聪明的解决方案,但是我认为应该可以使用
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c "$(shuf -i 1-4 -n 1)"
很简单:也使用随机数/字符生成器来生成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)"