Com uma variável, a coisa óbvia a fazer é passar o resultado do aviso anterior:
if [[ -z "$yesno" ]]; then
echo "welcome"
read yesno
fi
if [[ $something = etc.. ]]; then
whatever
fi
# doing it this way makes it exported into the subprocess
yesno=$yesno exec ~/bin/script