Помощь с Kindle e -чернила -отображать файл случайного изображения

Misrepush – это вредоносное ПО, которое обычно устанавливается вместе с бесплатным программным обеспечением, загруженным из ненадежных источников. Желательно максимально официальный репозиторий вашего дистрибутива. Если вы правильно разбили диск, вы можете переустановить систему без резервного копирования файлов (только переустановка с правами root )В противном случае полная переустановка системы кажется наиболее безопасным решением.

3
13.02.2020, 19:46
1 ответ

См. ответ Frostschutz , почему ваш код не работает. Я собираюсь дать разные решения.

Если ваша среда BusyBox включает awk, проще сгенерировать случайное число, достаточное для этого приложения

awk -v n=32 'BEGIN {srand(); print int(rand() * n); exit}'

srand()основан исключительно на текущем времени, округленном до ближайшей секунды, поэтому во многих случаях это неуместно (что-либо, связанное с безопасностью, -что-либо, где может происходить более одного случайного розыгрыша в секунду ). Но здесь достаточно хорошо.

Вместо того, чтобы присваивать номер каждому изображению и жестко -кодировать диапазон номеров, перечислите файлы и выберите один из них наугад. Точнее:

  • Установите позиционные аргументы в список файлов.
  • Используйте awk для случайного выбора одного позиционного аргумента.
  • Выберите это имя файла среди позиционных аргументов.
set -- /mnt/us/timelit/images/pic*.png
i=$(awk -v n=$# 'BEGIN {srand(); print int(rand() * n ) + 1; exit}')
eval "SelectedImage=\${$i}"

eips -c
eips -g $SelectedImage

Вы даже можете позволить awk выбрать файл изображения напрямую, хотя если файлов много, вы можете столкнуться с ограничением длины командной строки.

SelectedImage=$(awk '
    BEGIN {srand(); print ARGV[int(rand() * (length(ARGV)-1) + 1)]; exit}
  ' /mnt/us/timelit/images/pic*.png)

(Обратите внимание, что если бы у вас была более полная среда с утилитами bash и GNU, некоторые вещи можно было бы сделать проще. Мой ответ относится к функциям, доступным в каждой оболочке POSIX и во многих установках BusyBox.)

1
28.04.2021, 23:23

Теги

Похожие вопросы