1 |
Hallo Johann, |
2 |
|
3 |
Johann Schmitz schrieb: |
4 |
|
5 |
Du hast zwar schon eine Lösung, aber trotzdem. :) |
6 |
|
7 |
> cat "$1" | grep -vh '^\(#\|$\)' | while read line; |
8 |
> do |
9 |
> `$IPTABLES ${line}`; |
10 |
> done |
11 |
> |
12 |
> Das funktioniert auch, solange keine Variablen in der Datei als Parmeter |
13 |
> stehen. Falls welche drinstehen, werden die beim IPTables-Aufruf nicht |
14 |
> ersetzt (die Variable $LOG_LIMIT ist in dem Script gesetzt). |
15 |
|
16 |
Jepp, das liegt einfach daran, das du in deinem Konstrukt eine Subshell |
17 |
startest. Die ersetzt die Variable, gibt es aber nicht zurück n die |
18 |
ursprünfliche Shell. |
19 |
|
20 |
Einen Weg, das zu umgehen, hast du schon gefunden. Ein anderer ist, keine |
21 |
Subshell zu starten: |
22 |
while read line; |
23 |
do |
24 |
`$IPTABLES ${line}`; |
25 |
done < grep -vh '^\(#\|$\)' "$1" |
26 |
|
27 |
(useless use of cat entfernt) |
28 |
|
29 |
-- |
30 |
MfG Jan |