/dev/urandom 在 MacOS Monterey 上有什么变化吗?

Has anything changed with /dev/urandom on MacOS Monterey?

我曾经能够使用以下行从 /dev/urandom 生成随机字符序列:

cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 100 | head -n 1 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'

但在我升级到蒙特雷后,这不再起作用。我收到的输出不过是 Input error。这个 OS 版本有什么变化吗?我现在如何从 /dev/urandom 生成 100 个随机字符的序列?

在蒙特雷,locale 显示 LANG 已设置,总覆盖值 LC_ALL 未设置,因为它通常在其他地方设置,例如 https://docs.oracle.com/cd/E19455-01/806-0169/utf8-98/index.html 要在蒙特雷进行这项工作,只需将语言或覆盖更改为 POSIX 标准默认值:

LANG=C 要么 LC_ALL=C

在蒙特雷,字符类型语言环境可以设置为: LC_CTYPE=en.US.UTF-8 鉴于现在设置了 LANG,以避免尖括号内的转义码偷偷溜走。