Почему на некоторых машинах BAND $RANDOM не отображается (?)?
Я заметил, что на некоторых машинах (все 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 ответ
Решение
Вы можете просто посеять это:
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'