Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在终端中生成随机文本文件_Macos_Bash_Unix_Random_Terminal - Fatal编程技术网

Macos 在终端中生成随机文本文件

Macos 在终端中生成随机文本文件,macos,bash,unix,random,terminal,Macos,Bash,Unix,Random,Terminal,我正试图从终端在我的macbook上生成一个随机文本文件。我尝试的是: tr -dc A-Za-z0-9 < /dev/urandom | head -c100 > RandomFile.txt tr-dc A-Za-z0-9RandomFile.txt 但是我越来越 tr:非法字节序列 我做错了什么?设置此环境变量,您就可以开始了: setenv LC_ALL C 有了这个环境变量,我看到了一个格式良好的输出: tr -dc A-Za-z0-9 < /dev/uran

我正试图从终端在我的macbook上生成一个随机文本文件。我尝试的是:

tr -dc A-Za-z0-9 < /dev/urandom | head -c100 > RandomFile.txt
tr-dc A-Za-z0-9RandomFile.txt
但是我越来越

tr:非法字节序列


我做错了什么?

设置此环境变量,您就可以开始了:

setenv LC_ALL C

有了这个环境变量,我看到了一个格式良好的输出:

tr -dc A-Za-z0-9 < /dev/urandom | head -c100
Kk4kfjR3O0UraMpfTGicGvYCziFClJQUTO3zCXdo05RTxEUigqPXTkjtiGOsTsaNyqNR3rX2dsmPlHkSdqO5qWBTmIFIYezsekWT[~]:;
tr-dc A-Za-z0-9

这是我的库函数。优点是性能和直接分配给变量的能力。对您来说可能太过分了。

/dev/uradom提供的十六进制字节范围为00..ff。从
hextump/dev/uradom
开始,检查手册页中hextump的输出格式选项。谢谢,该页面很有用。它实际上是export LC_ALL=C,而不是setenv LC_ALL CYep。这取决于终端使用的外壳。@gniourf_gniourf告诉你的人给出了一个过于简单的答案。“
eval
是邪恶的”对初学者来说是个好建议。但是,您不应该否决您不理解的正确、编写良好的代码。
# 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