Almost same but a bit different:
From your script:
#!/usr/bin/ksh
save_var()
{
(for ITEM in $*
do
LVALUE='${'${ITEM}'}'
eval RVALUE="$LVALUE"
echo "$ITEM=\"$RVALUE\""
done) >> $cfg_file
}
restore_vars()
{
. $cfg_file
}
cfg_file=config_file
MY_VAR1="Test value 1"
MY_VAR2="Test
value 2"
save_var MY_VAR1 MY_VAR2
MY_VAR1=""
MY_VAR2=""
restore_vars
echo "$MY_VAR1"
echo "$MY_VAR2"
This time above is tested.