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
.
---------------------------------------------------
PLUG-discuss mailing list -
PLUG-discuss@lists.plug.phoenix.az.us
To subscribe, unsubscribe, or to change you mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss