У меня есть большой набор правил iptables, которым я управляю с помощью своего собственного скрипта bash. Большинство команд в скрипте являются простыми командами iptables с одним статусом. Я пытаюсь улучшить сценарий, добавляя вывод об успешном / неудачном выполнении сценария.
У меня сценарий разбит на несколько разделов. Одним из примеров может быть раздел цепочки FORWARD, где все правила применяются к цепочке FORWARD. В начале раздела я вывожу, что скрипт начал применять правила FORWARD, и в конце я хочу вывести, были ли все правила применены успешно, или если какое-либо из них не работало. Вот основная идея:
#Start FORWARD section
echo -ne "Applying FORWARD rules..."
#rule 1
/sbin/iptables -A FOWRARD...
#rule 2
/sbin/iptables -A FORWARD...
echo -ne "\t\t\t[OK]\n"
То, что я хочу сделать, это перехватить любые выходные данные или ошибки, которые могут возникнуть в результате каждой команды iptables, и сохранить их в массиве или что-то в этом роде. Затем в конце блока используйте оператор if, чтобы оценить массив и выяснить, не было ли ошибок. Если нет, выведите статус [OK], если он был, выведите статус [FAILED] и отобразите соответствующую ошибку.
Есть ли способ, которым я могу сделать это для всего блока правил, не заключая каждое правило iptables в if [$? ! = 0] выражение?