Я пытаюсь создать случайную строку со следующим кодом:генерации случайных строк ЗШ
for pic in `ls *.jpg`; do
rdn=`echo $RANDOM | sha256sum | cut -d" " -f1`
mv "$pic" ${rnd}.jpg
done
Эта часть сценария проходит внутри каталога, содержащего множество файлов в формате JPEG, и это должно рандомизации их имена файлов. Проблема в том, что переменная $RANDOM
не обновляется во время итерации и поэтому каждый раз дает один и тот же хэш. Я пытался использовать /dev/urandom
, и он работает, но намного медленнее, чем $RANDOM
. Что я могу сделать, чтобы «восстановить» $RANDOM
каждый раз, когда он читается?
Работы для меня .. Если это скрипт, убедитесь, что строка shebang говорит «/ bin/bash» вместо «/ bin/sh», на всякий случай. – vanza
Что вы пытались использовать/dev/urandom? Например, если вы ограничиваете срез 'dd', это должно быть довольно быстро. – kojiro
Кроме того, эта строка из руководства bash может быть релевантной: * Если RANDOM не настроен, он теряет свои особые свойства, даже если он впоследствии будет сброшен. * – kojiro