На самом деле самым простым способом может быть использование составной команды с объявлением переменной в начале.
Если вы объявляете переменную в начале командной строки, переменная временно определяется только для области действия этой команды.
madumlao@lezard:~$ x=foo
madumlao@lezard:~$ x=y bash -c 'echo $x'
y
madumlao@lezard:~$ echo $x
foo
Как видите, строка с объявлением переменной устанавливает переменную в среде только для этой строки.
Обратите внимание, что следующее не будет работать:
madumlao@lezard:~$ x=foo
madumlao@lezard:~$ x=y echo $x
madumlao@lezard:~$ echo $x
foo
Параметр $x во второй строке анализируется во время анализа строки команды -до фактического присвоения значения, поэтому он неожиданно оказывается пустым!
Ладно, я понял. Я раньше говорил
sudo fbi -a -T 1 --noverbose -d /dev/fb0 -t 5 --blend 1000 "${PICTURE}"
Но -t 5 переводит fbi в 5-секундный цикл
Делаем это
sudo fbi -1 -a -T 1 -d /dev/fb0 "$1"
отлично работает, обратите внимание на параметр -1
Кроме того, когда вы запускаете fbi, он продолжает работать, так что я запускал 10 копий одновременно. Я считаю, что параметр -1 исправляет это или просто выполняет killall fbi, прежде чем делать какие-либо другие изображения.
Я считаю, что это решает эту проблему.