欢迎各位兄弟 发布技术文章
这里的技术是共享的
echo $(openssl rand -base64 2 | tr -dc 'A-Z' | head -c 2) #它有时得到两个,有时得到一个,有时得到零个
在 macOS 上,你可以使用 Bash shell 脚本结合 $RANDOM
或其他工具来生成两个随机的大写英文字符。以下是一个简单的 Bash 脚本示例,它使用 $RANDOM
来生成两个随机大写字母:
bash复制代码#!/bin/bash
# 生成第一个随机大写字母 random_num1=$(( (RANDOM % 26) + 65 )) # 生成65到90之间的ASCII码,对应A-Z random_char1=$(printf "\\$(printf '%03o' $random_num1)") # 将ASCII码转换为字符
# 生成第二个随机大写字母 random_num2=$(( (RANDOM % 26) + 65 )) random_char2=$(printf "\\$(printf '%03o' $random_num2)")
# 打印结果 echo "$random_char1$random_char2"
在这个脚本中,我们首先使用 $RANDOM
生成一个随机数,然后对这个随机数取模 26 并加上 65,以确保结果在 ASCII 码的大写字母范围内(65-90)。接着,我们使用 printf
命令和 ASCII 码的八进制表示来将数字转换为对应的字符。
(下面的代码不正确,可以不用看了)
另外,你也可以使用 /dev/urandom
,但 macOS 上可能没有这个设备文件。如果你更倾向于使用更标准的 Unix 工具,并且你的 macOS 系统上安装了 openssl
,你可以使用以下命令来生成随机的大写字母:
bash复制代码#!/bin/bash
# 使用openssl生成随机的十六进制数字,然后通过xxd转换为大写字母 random_chars=$(openssl rand -hex 2 | xxd -r -p | tr '\000-\377' 'A-Z')
# 打印前两个字符(因为我们生成了更多的随机字符) echo "${random_chars:0:2}"
这个脚本使用 openssl rand -hex 2
生成两个随机的十六进制数字,然后通过 xxd -r -p
将其转换为原始字节,最后使用 tr
命令将这些字节映射到大写字母范围内。注意,这种方法生成的可能是两个以上的字符,因此我们只取前两个字符。
请确保根据你的具体需求和环境选择最适合的方法。如果你只是需要两个大写字母,第一个使用 $RANDOM
的方法可能更简单且足够使用。