我正在尝试从终端在我的 macbook 上生成一个随机文本文件。我正在尝试的是:
tr -dc A-Za-z0-9 < /dev/urandom | head -c100 > RandomFile.txt
但我得到
tr:非法字节序列
我究竟做错了什么?
设置这个环境变量,你应该很高兴:
setenv LC_ALL C
有了这个环境变量,我看到了一个格式很好的输出:
tr -dc A-Za-z0-9 < /dev/urandom | head -c100
Kk4kfjR3O0UraMpfTGicGvYCziFClJQUTO3zCXdo05RTxEUigqPXTkjtiGOsTsaNyqNR3rX2dsmPlHkSdqO5qWBTmIFIYezsekWT[~]:;
# Print or assign a random alphanumeric string of a given length.
# rndstr len [ var ]
function rndstr {
if [[ $FUNCNAME == "${FUNCNAME[1]}" ]]; then
unset -v a
printf "$@"
elif [[ $1 != +([[:digit:]]) ]]; then
return 1
elif (( ! $1 )); then
return
else
typeset -a a=({a..z} {A..Z} {0..9})
eval '${2:+"$FUNCNAME" -v} "${2:-printf}" -- %s "${a[RANDOM%'"${#a[@]}"']"{1..'"$1"'}"}"'
fi
}
rndstr 100
这是我的库函数。优点是性能和直接分配给变量的能力。可能对你来说太过分了。