Я обнаружил, что ответственным за это является gnome-settings-daemon.
/usr/libexec/gnome-settings-daemon
Вы ожидаете:
CONFIG_RESULT=$(configuer)
Присвоить значение $RECYCLEBIN
, потому что вы...
RECYCLEBIN="$value"
... в функции configer()
. Правда, функция does присваивает значение $RECYCLEBIN
, но это значение сохраняется только на время работы функции $(
subhell)
, в которой вы его установили. Она не применит никаких изменений в окружении родительской оболочки - именно там, где вы ее вызываете. Когда вы:
eval echo "Recyclebin: ${RECYCLEBIN}"
eval
разбирает все аргументы в строку, разделенную пробелами, и пытается запустить результат в виде команды оболочки. Таким образом, "${RECYCLEBIN}"
исчезает, потому что в текущем окружении оболочки в последний раз была установлена нулевая строка типа '
:
RECYCLEBIN=
Таким образом, при выполнении оператора все, что он делает - это:
echo Recyclebin:
Что функционально ничем не отличается от ....
echo "Recyclebin: ${RECYCLEBIN}"
... в любом случае, потому что $RECYCLEBIN
пуст.