PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : linux shell string manipulation problem



echoslider
04.10.2008, 11:05
if [ -f /etc/firewall/route.conf ]; then
for port in `cat /etc/firewall/route.conf`
do
if [ "$port" != "" ]
then
komment=`expr substr $port 1 1`
if [ "$komment" != "#" ]
then

vip=`echo $port|cut -d ' ' -f1`
vport=`echo $port|cut -d ' ' -f2`

sudo iptables -A PREROUTING -t nat -i $interface -p tcp --dport $vport -j DNAT --to $vip:$vport

fi
fi
done
fi


jedes mal kommt ein fehler das dan anscheinend $vport aber NUR bei --dport leer ist. das andere funktioniert.


wenn ich $vport bei --dport definiere. den rest aber als variablen lasse funktoniert alles.


was is falsch. wo is der fehler?

rezman
04.10.2008, 11:14
Hatten wir das nicht irgendwo schonmal oder irre ich mich?

echoslider
04.10.2008, 11:32
du irrst dich.
ich bezweifle das sich irgend wer hier damit beschäftigt was ich immer mache. das war noch nie so. immer irgend welche noobigen sachen mit" wie hacke ich wen" "wie erstellt man nen vserver" "was ist internet" oder so nen mist.

vielleicht hatte ich vor 2,5 jahren oder so nen ähnlichen post... ging auch um meine firewall. aber damals war da ein anderes problem..

zeichenfolgen kannich ja trennen. die frage is nur warum die variable das 2. mal eingesetzt wird. das 1. mal aber nicht.


wenn jemand keine antworten hat die zur lösung beitragen wie die oben... dann bitte nicht antworten. danke. ansonsten nur postfarming.

ich will hier nicht wieder beim lesen 10 seiten spam überlesen müssen. so wie bei 90% der beiträge hier... hier bitte richtig antworten.

-[RiDER]-
13.10.2008, 17:47
Schonmal ausprobiert, ob $port und $vport auch das enthalten, was Du erwartest?
Ich würde übrigens mit Regex anstelle von cut arbeiten.

GreetZ RiDER :D :D :D

echoslider
14.10.2008, 05:07
jo gespeichert ist das. jedenfalls vor dem eigendlichen befehl kommt ne richtige ausgabe der variablen zustande.

das andere werd ich mal versuchen.