Hi,
I have fixed the problem. It seems in cygwin it spawns a subshell even under
bash. I used a for loop instead and everything worked nicely.
for line in `sed 's/\$/^/g' $propfile`
do
nvpair=$(echo $line | awk -F"=" '{print $1,$2}')
set -- $nvpair
if [ ! "$1" = "" ]; then
eval "$1"=\"$2\"
fi
done
-----Original Message-----
From: Damo, David
Sent: Thursday, January 14, 2010 5:40 PM
To: '[email protected]'
Subject: Can't set variables in a while loop that is passed to the rest of the
script.
Hi,
I had a script that worked on UNIX, but on Cygwin it does not work. When I set
a variable in a while loop I can't use it after the loop. However, this worked
in UNIX. Any ideas why? All variables set after the done command are blank, but
can be seen in the while loop.
propfile=${SCRIPT_HOME}/${propfilename}
sed 's/\$/^/g' $propfile | while read line
do
export david="Hello"
nvpair=$(echo $line | awk -F"=" '{print $1,$2}')
set -- $nvpair
if [ ! "$1" = "" ]; then
eval "$1"=\"$2\"
fi
done
echo $david
echo "Setting siteminder_home"
echo $siteminder_home
Thanks,
David
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple