[gentoo-user-de] Variablen Substitution in der Bash

13/10/2007 - 17:50 von Johann Schmitz | Report spam
Hallo Leute!

ich bastele gerade mal wieder an einem Bashscript und komme nicht weiter. Ich habe
eine Datei in der Befehle stehen (in meinem Fall IPTables-Regeln).

z.B:
-A INPUT -m state --state INVALID -m limit --limit $LOG_LIMIT -j LOG --log-prefix
"INVALID INPUT: "

Diese Datei lese ich in meinem Script ein, und führe danach /sbin/iptables mit den
Parametern aus der Datei aus:

cat "$1" | grep -vh '^\(#\|$\)' | while read line;
do
`$IPTABLES ${line}`;
done

Das funktioniert auch, solange keine Variablen in der Datei als Parmeter stehen.
Falls welche drinstehen, werden die beim IPTables-Aufruf nicht ersetzt (die Variable
$LOG_LIMIT ist in dem Script gesetzt).

Habe ich hier mal wieder etwas bei der Verwendung von Variablen übersehen, oder ist
das was ich vorhabe schlichtweg unmöglich, und ich muss die Variablen selber ersetzen?


Gruß,

Johann


Johann Schmitz
http://www.j-schmitz.net


gentoo-user-de@gentoo.org mailing list
 

Lesen sie die antworten

#1 Johann Schmitz
14/10/2007 - 17:20 | Warnen spam
Ich habe es herausgefunden:

Statt einem

`$IPTABLES ${line}`;



mach ich jetzt ein

eval "$IPTABLES $line";

und schon werden die Variablen ersetzt.

Johann Schmitz
http://www.j-schmitz.net
mailing list

Ähnliche fragen