Я хочу зафиксировать количество правил iptables, которые начинаются с определенного шаблона в комментарии, а затем удалить их. Это то, чего я хочу достичь. Вот мой bash-скрипт
ssh -o "StrictHostKeyChecking no" root@$ip_address << EOF
echo "Now Removing your IPTables";
#storing output in input variable
input=$(iptables -nL INPUT --line-number | grep ip.* | cut -d " " -f1 | xargs)
#converting variable into an array
arr1=($input);
#loop through each element of array
echo "length:${#arr1[@]}";
for (( i="${#arr1[@]}"-1;i >=0; i-- ));
do
echo "$i:${arr1[$i]}"
iptables -D INPUT $i;
done;
EOF
Проблема в том, что команда iptables не выполняется на удаленной машине, а в выводе показано, что длина arr1 равна 0. Но я уверен, что iptables имеет правила с моим желаемым шаблоном.
Ошибка, отображаемая на терминале:
-bash: line 9: 3: command not found
Добавление 2>&1
в конце команды также не работает:
input=$(iptables -nL INPUT --line-number | grep ip.* | cut -d " " -f1 | xargs 2>&1)