я учусь 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,
rand()
начинает генерировать числа из одного и того же начального числа или семени при каждом запуске awk. Таким образом, программа генерирует одни и те же результаты при каждом запуске. Числа случайны в пределах одного запуска awk, но предсказуемы от запуска к запуску. Это удобно для отладки, но если вы хотите, чтобы программа выполняла разные действия каждый раз, когда она используется, вы должны изменить начальное значение на значение, которое различается при каждом запуске. Для этого используйтеsrand()
.