我正在学习AWK ,当我第二次使用下面的命令时,为什么数字总是一样的?
第一次运行:
awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}' 24 29 85 15 59 19 81 17 48 15
第二次运行:
awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}' 24 29 85 15 59 19 81 17 48 15
从https://www.gnu.org/software/gawk/manual/html_node/Numeric-Functions.html
小心 :在大多数awk实现中,包括gawk,每次运行awk时,
rand()从相同的起始编号或种子开始生成数字。 因此,程序每次运行时都会产生相同的结果。 这个数字在一个awk运行中是随机的,但是从运行到运行是可以预测的。 这对debugging非常方便,但是如果您希望程序在每次使用时执行不同的操作,则必须将种子更改为每次运行时不同的值。 为此,使用srand()。