The idea is simple: ###
VARS=$( # this allows to capture subshell stdout to a variable . $HOME/script.sh 1>/dev/null # this prevents script printing something to stdout set # this prints all variables to stdout alias | sed 's/.*/alias \0/' # this prints aliases to stdout and prefixes them with "alias " ) || ERRCODE="$?" if [ $ERRCODE==0 ] then eval $VARS # if everything is ok, we reevaluate the variables and aliases in this shell fi ### Now the "VARS=$(command) || ERRCODE="$?"", || prevents the command from exiting the script if the next command exits with code 0. We could also use "VARS=$(command) || true", but then "$?" would contain the result of command "true", since ERRCODE="$?" also exits with code 0 we can prevent the shell from exiting and remember the correct error code. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/678421 Title: Error in ~/.profile halts the X startup To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/678421/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs