Менять окружение родительского процесса не получится.
Но можно сделать следующим образом: завести временный файл с настройками, выполненный в виде шелл-скрипта, изменять его из вызываемых скриптов и подгружать его в запускаемые скрипты при старте. Наример так:
основной скрипт (запускает pdmenu, который дальше запускает 1.sh и 2.sh):
CONF=`mktemp`
export CONF
...
pdmenu pdmenurc
...
rm -f "${CONF}"
1.sh (изменяет VAR):
. "${CONF}"
...
sed -i "${CONF}" -e "/^VAR=/d"
echo "VAR=\"${new_var_value}\"" >> "${CONF}"
...
2.sh (выводит VAR изменённый в 1.sh):
. "${CONF}"
...
echo "${VAR}"
...