Bash脚本编号生成器
发布时间:2020-12-15 22:01:46 所属栏目:安全 来源:网络整理
导读:我需要生成特定格式的随机数作为测试数据.例如,给定数字“n”我需要产生“n”个随机数并将它们写入文件中.该文件每行最多包含3个数字.这是我有的: #!/bin/bashm=$1output=$2for ((i=1; i= m; i++)) do echo $((RANDOM % 29+2)) $outputdone 这输出数字为:
我需要生成特定格式的随机数作为测试数据.例如,给定数字“n”我需要产生“n”个随机数并将它们写入文件中.该文件每行最多包含3个数字.这是我有的:
#!/bin/bash m=$1 output=$2 for ((i=1; i<= m; i++)) do echo $((RANDOM % 29+2)) >> $output done 这输出数字为: 1 2 24 21 10 14 而我想要的是: 1 2 24 21 10 14 谢谢您的帮助! 解决方法
纯bash(写成函数而不是脚本文件)
randx3() { local d=$' n' local i for ((i=0;i<$(($1 - 1));++i)); do printf "%d%c" $((RANDOM%29 + 2)) "${d:$((i%3)):1}" done printf "%dn" $((RANDOM%29 + 2)) } 请注意,它不带文件参数;而是输出到stdout,所以你会像这样使用它: randx3 11 > /path/to/output 这种风格通常更灵活. 这是一个不那么hacky的,它允许您选择你想要换行的频率: randx() { local i local m=$1 local c=${2:-3} for ((i=1;i<=m;++i)); do if ((i%c && i<m)); then printf "%d " $((RANDOM%29 + 2)) else printf "%dn" $((RANDOM%29 + 2)) fi done } 将其称为randx 11或randx 11 7(第二个参数默认为3). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |