Удалить несколько iptables с номером строки (для l oop) - PullRequest
1 голос
/ 05 марта 2020

У меня есть VPN-сервер, на котором указаны c маршруты, которые отправляются клиентам при инициализации подключения, и я пытаюсь написать сценарий bash, чтобы отбрасывать маршруты при отключении клиента.

Я в настоящее время есть, но он удаляет только 1-ую запись, и мне нужно, чтобы он отбрасывал все возвращаемые номера строк.

get_iptables_rule_by_comment () {
  echo $(sudo /sbin/iptables -nL FORWARD --line-numbers | grep "$common_name" | cut -f1 -d" " | sed -n '1p')
} 

Так что, если у меня есть две записи, совпадающие в iptables, он напечатает номера строк 7 & 8

Удаляет номер первой возвращенной строки

rule_number=$(get_iptables_rule_by_comment)
if [ "$rule_number" ]; then
  sudo /sbin/iptables -D FORWARD $rule_number
fi


exit 0

Может кто-нибудь помочь мне написать для l oop, чтобы я мог отбросить второе и третье, если было один. Это, наверное, просто, просто не могу обернуть голову вокруг этого Я новичок в bash сценариях.

...