我想生成很多六个字符的字符串,它们都遵循这个模式:
[consonant][vowel][consonant][consonant][vowel][consonant]
例如
haplop
github
qursog
我已经研究过执行此操作的各种方法,但到目前为止我所拥有的都不是优雅的。我的想法主要围绕一次生成一个字符,但即便如此,由于我缺乏 bash 脚本知识和晦涩的 Linux 命令,我的想法并不是那么好。
理想情况下,我正在寻找一个随机生成字符串但允许我指定上面显示的模式(如果存在的话)的 Linux 命令。或者,如果您知道在 bash 中执行此操作的简单方法,那也很棒。
提前致谢
编辑:顺便说一句,我会在选择接受的答案前 24 小时给出这个答案,这样我就有更多机会选择最佳答案,而不仅仅是第一个(尽管第一个答案非常好)。
最佳答案
以下是生成元音的方法:
s=aeiou
p=$(( $RANDOM % 5))
c=${s:$p:1}
对辅音使用相同的方法。
你可以把它包装成一个小函数:
function vowel() {
s=aeoiu
p=$(( $RANDOM % 5))
echo -n ${s:$p:1}
}
然后你有一个很好的模式来生成字符串:
s=`consonant; vowel; consonant; vowel; consonant; vowel`
关于linux - 在 Bash 中按照特定模式生成随机字符串的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032547/