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)
;;
two)
;;
*)
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
sod:~/scripts alex$ ./cvsswitch two
Selected server : 'two'
sod:~/scripts alex$ echo $CVSROOT
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