Почему на некоторых машинах BAND $ RANDOM не отображается (?)? - PullRequest
5 голосов
/ 13 марта 2011

Я заметил, что на некоторых машинах (все openSUSE 11.2 на одинаковом оборудовании) каждая оболочка Bash будет выводить одинаковую последовательность значений для $RANDOM:

$ bash -c 'for i in `seq 10`; do echo -n "$RANDOM "; done; echo'
17767 9158 6249 18547 23633 23807 5194 22764 7977 31949 
$ bash -c 'for i in `seq 10`; do echo -n "$RANDOM "; done; echo'
17767 9158 6249 18547 23633 23807 5194 22764 7977 31949

Последовательность одинакова на всех этих машинах,Кажется, генератор случайных чисел не засеян?Почему это происходит и как это исправить?

На моем персональном компьютере номера меняются каждый раз, когда я вызываю вышеуказанную команду.

1 Ответ

5 голосов
/ 13 марта 2011

Вы можете просто посеять это:

bash -c 'RANDOM=$$; for i in `seq 10`; do echo -n "$RANDOM "; done; echo'

bash -c 'RANDOM=`date +%s`; for i in `seq 10`; do echo -n "$RANDOM "; done; echo'
...