Я хочу раскомментировать строку 168 в файле etter.conf. Команда работает нормально в терминале, но я получаю сообщение об ошибке при попытке его использования в perl.Использование sed для замены строки в perl
system ("sed -i '168s/.*/redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"/' /etc/etter.conf");
Ошибка:
Bareword found where operator expected at ./attack.pl line 135, near
""sed -i '168s'/.*'/redir_command_on = "iptables"
Я думаю, что это что-то делать со специальными символами и побегах.
Вам нужно избегать ваших вложенных кавычек. Perl считает, что iptables предполагается переменным. –
Двойные запросы в команде завершают строку perl. – Barmar
Есть ли причина, по которой вы обманываете 'sed'? Perl отлично способен обновлять файл самостоятельно. – Barmar