[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Variables "xunges" en shell scripts



Doncs be, senyores i senyors, ja he trobat un momentet i he arreglat el
problema aquell que vaig comentar no fa gaire sobre les variables
"recursives" en shell scripts

Com? Doncs creo un nou fitxer de configuracio temporal pero sense les lines
corresponents a les variables que es donen per la linia de comandes (les que
es volen sobreescriure), i utilitzo aquest ultim fitxer per a treballar (li
faig un 'source')

El codi (les variables a sobreescriure estan totes en el primer parametre de
la funcio, en la forma "VAR1=val1,VAR2=val2,...":
#
# Load configuration
#
# TODO: multi-line variables are broken if overwritten on cmd line
#
function load_config
{
  [ -f $CONFIG ] || error "Could not find config file $CONFIG"

  RAND_CONFIG=/tmp/dscdbuilder.conf.$RANDOM

  local VARS="FOO"
  for i in `echo $1 | sed 's/\,/ /g'`; do
    local VAR=`echo $i | cut -f 1 -d "="`
    local VAL=`echo $i | cut -f 2 -d "="`
    # donem el nou valor de la linia de comandes
    export $VAR=$VAL
    VARS="$VARS\|$VAR"
  done

  # creem el nou fitxer treient-li les variables que volem sobreescriu-re
  # ($VARS)
  cat $CONFIG | grep -v "\ *\($VARS\)\ *=" > $RAND_CONFIG

  . $RAND_CONFIG
  rm -f $RAND_CONFIG
}

Tal com diu el TODO, hi ha un punt que encara no esta, pero em fa molt de
pal fer-ho be... :P

Moltes gracies a tot*s per la vostra ajuda

apa!

-- 
+++ GMX DSL Premiumtarife 3 Monate gratis* + WLAN-Router 0,- EUR* +++
Clevere DSL-Nutzer wechseln jetzt zu GMX: http://www.gmx.net/de/go/dsl



Reply to: