# Bash-Variable Zeilenweise auslesen [solved]

## AntonWert

Ich bin gerade dabei meine Firewallregeln per Skript zu verarbeiten...

Dazu will ich die aktuellen Reglen per Skript einlesen und verarbeiten. Da die Ausgabe mehrere Zeilen enthält, möchte ich sie aufteilen aber nur wie?

```

#!/bin/bash

INHALT=`iptables -L -v -Z`

for $zeile in $INHALT

do

echo $zeile

done

```

das Beispiel arbeitet nicht da for das ganze ja Wörterweise verarbeitet, weis jemand wie das Zeilenweise geht?Last edited by AntonWert on Thu Dec 29, 2005 7:25 pm; edited 1 time in total

----------

## smg

Spiel mal mit dem IFS ein bisschen rum und benutze Quotes!  :Wink: 

P.S.: Setze mal den IFS auf newline ('\n')..

IFS='\n'

for LINE in $(iptables -L -v -Z); do

   echo $LINE

done

IFS=' '

Bye.

----------

## AntonWert

bist ja echt ein Guru  :Smile: 

nunja, aber leider tut's net so wie gedacht...

 *Quote:*   

> 
> 
> #!/bin/bash
> 
> IFS='\n'
> ...

 

vermute, dass '\n' als 2 Zeichen interpretiert werden, und nicht als Newline...

----------

## AntonWert

Habs!

IFS=$'\n'

nur warum weis ich selbst nicht   :Rolling Eyes: 

----------

## Earthwings

Schöner (IMHO):

```
iptables -L -v -Z 2>&1 | while read line

do

  echo $line

done
```

Das 2>&1 sorgt nur dafür, dass Fehlermeldungen (stderr) auch gelesen werden.

----------

