Skrypt ma czytać pliki znajdujące się w katalogu $FILES, nazwa pliku ma zostać przypisana do zmiennej ip, zawartość pliku (dane w jednej kolumnie) do zmiennej IN, warunki for z in ... sobie daruję, bo nie mają obecnie znaczenia, działają poprawnie.
Pisanie zmiennych przez echo dałem w celach diagnostycznych, te zmienne są poprawne.
W ostatniej pętli zmienna n ma poprawną wartość, zmienna i natomiast nie jest nazwą pliku, lecz pełną ścieżką do niego.
Kod: Zaznacz cały
FILES=/home/lukasz/adresy/*
for i in ${FILES}
do
ip=`echo $i | awk -F. '{print $3}'`
IN=`cat $i`
for z in 140 141 142 143 156 229
do
if [ "$ip" == "$z" ];then
podsiec_out=`echo "$IPTB3"`
podsiec_in=`echo "$IPTB3in"`
fi
done
for z in 144 145 146 147
do
if [ "$ip" == "$z" ];then
podsiec_out=`echo "$IPTB2"`
podsiec_in=`echo "$IPTB2in"`
fi
done
for z in 184 185 186 187
do
if [ "$ip" == "$z" ];then
podsiec_out=`echo "$IPTB504"`
podsiec_in=`echo "$IPTB504in"`
fi
done
echo "Out: $podsiec_out"
echo "IN: $podsiec_in"
echo "MAC: $IN"
for n in $IN
do
echo "$podsiec_out -m mac --mac-source $n -s $i -j ACCEPT" >> /home/lukasz/okitest.txt
echo "$podsiec_in -d $i -j ACCEPT" >> /home/lukasz/okitest.txt
done
break
done
Kod: Zaznacz cały
echo "$podsiec_out -m mac --mac-source $n -s $i -j ACCEPT" | sed "s/$FILES//g" >> /home/lukasz/okitest.txt
Co ciekawe, w momencie gdy zrobiłem tak:sed: -e wyrażenie #1, znak 9: nieznana opcja dla polecenia `s'
Kod: Zaznacz cały
echo "$podsiec_out -m mac --mac-source $n -s $i -j ACCEPT" #| sed "s/$FILES//g" >> /home/lukasz/okitest.txt
