我尝试使用以下命令生成一个随机字符串:
tr -dc 'A-Za-z0-9!#$%&()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c16; echo;
我需要将该命令放入需要在 AIX 和 Linux 上运行的 shell 脚本中的函数中。由于我们的 AIX 机器上没有安装 bash,我需要使用 ksh93。当我尝试在 bash(或 zsh)中执行此命令时,它按预期工作。但在 KSH 中,它因“无效的源字符串”而失败。
我试图重新排列字符串并删除了一些字符,但没有成功。输出是
tr: A-Za-z0-9!#$%&()*+,-./:;<=>?@[\]^_`{|}~: invalid source string
我如何需要将此字符串传递给 ksh 才能使其正常工作?
提前致谢
感谢@glenn-jackman 的输入:
当我删除
从列表中我得到了错误
但我已经知道必须设置 LC_ALL 以避免这种情况。我现在逃脱了字符串。工作片段是
谢谢