O caractere /
é um operador em sed
. Basicamente você está acabando com:
sed '//sbin/iptables -A INPUT -p tcp -s "{ip}" -j DROP/d' /root/ip.txt
Isso significa que você está tentando executar '// sb' como um comando sed, onde b
é o separador e não pode encontrar outro 'b'.
Você precisaria citar os caracteres especiais:
udprule="\/sbin\/iptables -A INPUT -p udp -s "$ip" -j DROP"
E você precisaria estar atento ao que está em $ ip pelo mesmo motivo.