我正在 Bash 中使用这个嵌套的 shuf 命令来获取可变长度的字母数字字符串:
shuf -erz -n $(shuf -e -n 1 {0..5}) {A..Z} {a..z} {0..9}
电流输出:
这将在 shell 提示符前面的新行中输出字母数字字符串。
MyPrompt:$ shuf -erz -n $(shuf -e -n 1 {0..5}) {A..Z} {a..z} {0..9}
OcxjrMyPrompt:$
期望的输出:
我想在它自己的线路上输出。
MyPrompt:$ shuf -erz -n $(shuf -e -n 1 {0..5}) {A..Z} {a..z} {0..9}
Ocxjr
MyPrompt:$
有没有办法改变 shuf 命令或在 shuf 命令后附加另一个标准 Bash 命令以获得所需的输出?其他方法也受到欢迎,但我想让更改易于添加/删除。
我尝试搜索以前的答案,但我对 Bash 还很陌生,而且我似乎无法找到正确的术语来产生有用的结果。同样,我也尝试过自己的方法(主要使用回声和管道),但也没有取得成功。
答案1
我可能会通过附加; echo
到命令来解决这个问题。
答案2
如果您只想将输出放在单独的行上,请使用paste
:
paste <(shuf -erz -n $(shuf -e -n 1 {0..5}) {A..Z} {a..z} {0..9})