Você está esperando:
CONFIG_RESULT=$(configuer)
Para atribuir um valor a $RECYCLEBIN
porque você ...
RECYCLEBIN="$value"
... na função configuer()
. É verdade que a função atribui um valor a $RECYCLEBIN
, mas esse valor só persiste durante a duração do $(
subshell )
em que você o definiu. Ele não aplicará quaisquer alterações no ambiente do shell pai - que é onde você o chama. Quando você:
eval echo "Recyclebin: ${RECYCLEBIN}"
eval
analisa todos os seus argumentos em uma string separada por espaço e tenta executar os resultados como um comando shell. Portanto, "${RECYCLEBIN}"
desaparece porque - no ambiente atual do shell - foi definido pela última vez para a string ''
null como:
RECYCLEBIN=
Assim, na execução da declaração, tudo o que faz é:
echo Recyclebin:
Que não é funcionalmente diferente de ...
echo "Recyclebin: ${RECYCLEBIN}"
... de qualquer forma porque $RECYCLEBIN
está vazio.