Almost same but a bit different:
From your script:
#!/usr/bin/ksh
save_var()
{
(for ITEM in $*
do
LVALUE='${'${ITEM}'}'
eval RVALUE="$LVALUE"
(grep "^$LVALUE\$" $cfg_file ; echo "$LVALUE=\"$RVALUE\"" )"$ITEM=\"$RVALUE\"" > $cfg_file
done) >> $cfg_file
}
restore_varrestore_vars()
{
eval $(grep $(echo $* | sed 's/\([^ ]\{1,\}\)/-e ^\1=/g'). $cfg_file)
}
cfg_file=config_file
MY_VAR1="Test value 1"
MY_VAR2="Test valeu
value 2"
save_var MY_VAR1 MY_VAR2
MY_VAR1=""
MY_VAR2=""
restore_var MY_VAR1restore_vars MY_VAR2
echo "$MY_VAR1"
echo "$MY_VAR2"
Above was notThis time above is tested, but you should be able to get the idea.