#!/bin/bash
i=0
j=0
for a in hello hi hola re; do
let i=i+1
for b in hello hi hola re; do
let j=j+1
if [ $i -eq $j ]; then
echo "$a $b"
fi
done
j=0
done
Как сделать то же самое но стремя циклами (именно с тремя!), без всяких дублирований и эмуляций, потому что те слова что сейчас в примерах
могут принять любые значения... в моем случае это значения для правил iptables (1 цикл: ip , 2 цикл: порт , 3 цикл: connlimit), это чтобы не
возникало вопросов зачем это вообще нужно
#!/bin/bash
IPT=/sbi/iptables
IP=`cat ./allow_ip | awk '{print $1}'`
PORT=`cat ./allow_ip | awk '{print $2}'`
LIMIT=`cat ./allow_ip | awk '{print $3}'`
i=0
j=0
for a in $IP; do
let i=i+1
for b in $PORT; do
let j=j+1
if [ $i -eq $j ]; then
$IPT -A LIMIT -p tcp --syn -s $a --dport $b -m connlimit --connlimit-above $c(тут LIMIT!) -j DROP
fi
done
j=0
done
Это выборка из полей $1 и $2, ($IP и $PORT соответственно), как к этому делу приплюсовать еще одну функцию, которая бы осуществляла подстановку из поля $3 ($LIMIT), то есть нужен еще некто $c
Извеняюсь, строчку с правилом iptables я привел с ожидаемым видом, не имея представления как реализовать цикл для $c
ну, это все хорошо Сижу радуюсь Ток позвольте еще один вопрос (совсем тупой), вот получил я по вашим примерам нужные правила в stdout, а дальше то чего мне с ними делать? =) Это ж текст обычный
ну, это все хорошо Сижу радуюсь Ток позвольте еще один вопрос (совсем тупой), вот получил я по вашим примерам нужные правила в stdout, а дальше то чего мне с ними делать? =) Это ж текст обычный