Я думаю, что нашел действительно странную ошибку в генераторе случайных чисел Bash ($RANDOM
).
Показывать проще, чем рассказывать, вот что происходит:
Цель состоит в том, чтобы получить случайные цифры. Если я выполню это, я получу 20 случайных цифр, как и ожидалось.
for i in {1..20}; do echo $((RANDOM % 10)); done
Но если оператор echo
содержится в скрипте, я получаю действительно странную комбинацию цифр.
$ cat randomtest
#!/bin/bash
echo $((RANDOM % 10))
$ for i in {1..20}; do ./randomtest; done
9
8
8
6
7
5
5
4
4
2
3
1
1
1
0
0
8
9
7
7
Что происходит в мире?
Системная информация:
- Mac OS X 10.10.2
- GNU Bash, версия 4.3.30(1)-релиз (устанавливается через Homebrew)