I'm using bash (on OSX).  In ~/.bash_profile, I have a CVSROOT variable set so I can connect to 1 CVS server.  I occasionally want to connect to another cvs server, so I wrote a shell script to set a new CVSROOT value for me.  The script appears to set the value correctly, but it doesn't change my environment settings outside of the script.  It seems like it's a global vs. local variable issue. (CVSROOT is set differently within the context of the script, but is the change is forgotten when the script exits.)  I don't do shell scripts very often, so I'm probably missing something really obvious.  How do I tell the script I want to change the value 'for real'?

This is the script :
#!/bin/sh
echo "Selected server : "$1;

case "$1" in
  one)
    CVSROOT=":ext:alex@cvs.one.net:/var/lib/cvs"; export CVSROOT;
  ;;
  two)
    CVSROOT=":ext:alex@cvs.two.net:/var/lib/cvs"; export CVSROOT;
  ;;
  *)
    echo '???';
    exit 0;
esac

echo "CVSROOT value at end of script : "$CVSROOT;
exit 0;

And here's a session which -should- switch from server 'one' to server 'two', but it doesn't...

sod:~/scripts alex$ echo $CVSROOT
:ext:alex@cvs.one.net:/var/lib/cvs
sod:~/scripts alex$ ./cvsswitch two
Selected server : 'two'
CVSROOT value at end of script : ':ext:alex@cvs.two.net:/var/lib/cvs'
sod:~/scripts alex$ echo $CVSROOT
:ext:alex@cvs.one.net:/var/lib/cvs
sod:~/scripts alex$

You can see the script set the variable correctly, but the change didn't apply outside of the script.  Why doesn't this work?!

thanks,
alex
.