Hallo zusammen,
ich habe die Situation, dass ich Variablenzuweisungen wie
EINDEUTIGE_VARIABLE=FOO
in "fremden" Dateien als auskommentierte Zeilen stehen habe:
# EINDEUTIGE_VARIABLE=FOO
Jetzt möchte ich diese auskommentieren Zuweisungen in meinem Skript auswerten, ohne die "fremde" Datei abändern zu müssen.
Das mache ich so:
export $(sed '/EINDEUTIGE_VARIABLE/s/^#[[:space:]]*//' datei) echo $EINDEUTIGE_VARIABLE FOO
Soweit so gut. Jetzt das ganze mit Leerzeichen im String:
$ cat datei # EINDEUTIGE_VARIABLE="FOO BAR" $ sed '/EINDEUTIGE_VARIABLE/s/^#[[:space:]]*//' datei EINDEUTIGE_VARIABLE="FOO BAR" $ export $(sed '/EINDEUTIGE_VARIABLE/s/^#[[:space:]]*//' datei) bash: export: `BAR"': not a valid identifier
Der String scheint hier Bash-intern nochmal auskommentiert zu sein, oder wie muss ich das verstehen? Hat jemand eine Idee, wie man das einigermaßen sauber beheben kann?
(Ich dachte schon daran, die Variablen zu "greppen" und per source
wieder einzulesen. Wäre eine Variante, hat aber den Nachteil, dass ich den Zwischenschritt brauche, das ganze in eine Datei zu schreiben)