Skip to main content
deleted 74 characters in body
Source Link

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.

Almost same but a bit different:

From your script:

save_var()
{

    for ITEM in $*
    do
        LVALUE='${'${ITEM}'}'
        eval RVALUE="$LVALUE"
        (grep "^$LVALUE\$" $cfg_file ; echo "$LVALUE=\"$RVALUE\"" ) > $cfg_file
    done
}

restore_var()
{
    eval $(grep $(echo $* | sed 's/\([^ ]\{1,\}\)/-e ^\1=/g') $cfg_file)
}

cfg_file=config_file
MY_VAR1="Test value 1"
MY_VAR2="Test valeu 2"

save_var MY_VAR1 MY_VAR2
MY_VAR1=""
MY_VAR2=""

restore_var MY_VAR1 MY_VAR2

echo "$MY_VAR1"
echo "$MY_VAR2"

Above was not tested, but you should be able to get the idea.

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.

Source Link

Almost same but a bit different:

From your script:

save_var()
{

    for ITEM in $*
    do
        LVALUE='${'${ITEM}'}'
        eval RVALUE="$LVALUE"
        (grep "^$LVALUE\$" $cfg_file ; echo "$LVALUE=\"$RVALUE\"" ) > $cfg_file
    done
}

restore_var()
{
    eval $(grep $(echo $* | sed 's/\([^ ]\{1,\}\)/-e ^\1=/g') $cfg_file)
}

cfg_file=config_file
MY_VAR1="Test value 1"
MY_VAR2="Test valeu 2"

save_var MY_VAR1 MY_VAR2
MY_VAR1=""
MY_VAR2=""

restore_var MY_VAR1 MY_VAR2

echo "$MY_VAR1"
echo "$MY_VAR2"

Above was not tested, but you should be able to get the idea.