在寻找匹配的'''时意外的EOF

时间:2011-09-10 15:39:47

标签: regex linux perl eof

#!/usr/bin/perl
use warnings;
while(1){
system ( "dialog --menu Customize 30 80 60 "
        . "'Show rules' 'Show all the current rules' "
        . "'Flush rules' 'Flush all the tables' "
    . "Allow IP' 'Block all except one IP' "
    . "'Block IP' 'Block all the packets from an IP' "
    . "'Block MAC' 'Block using the hardware address' "
        . "'Private networking' 'Allow only one network and block other networks' "
    . "'Allow lo' 'Allow local network interface' "
    . "'Save' 'Save customized rules' "
    . "'Exit' 'Close the program' "
        . "'more options' '........' 2> /tmp/customize.txt");

open FILE4, "/tmp/customize.txt" or die $!;
chomp(my $customize = <FILE4>);
        #SHOW RULES
                if($customize =~ /Show rules/){
        `iptables -nvL | tee /tmp/nvl.txt`;
                system ("dialog --textbox /tmp/nvl.txt 22 70");
                }
        #FLUSH RULES
        elsif($customize =~ /Flush rules/){
        `iptables -F`;
        system ("dialog --infobox 'All tables have been flushed.' 05 35");
        sleep 2;
        }
        #ALLOW IP
        elsif($customize =~ /Allow IP/){
        system ("dialog --inputbox 'Enter the IP address of the sysetm which you want to allow:' 15 40 2> /tmp/allowIP.txt");
        open FILE7, "/tmp/allowIP.txt" or die $!;
        chomp(my $aip = <FILE7>);
        `iptables -I INPUT -s $aip -j DROP`;
        system ("dialog --infobox 'IP address $aip is allowed and rest are blocked' 05 45");
        sleep 2;
        }
        #BLOCK IP
        elsif($customize =~ /Block IP/){
        system ("dialog --inputbox 'Enter the IP address of the system which you want to block:' 15 40 2> /tmp/blockIP.txt");
        open FILE5, "/tmp/blockIP.txt" or die $!;
        chomp(my $ip = <FILE5>);
        `iptables -A INPUT -s $ip -j DROP`;
        system ("dialog --infobox 'IP address $ip has been blocked!' 05 35");
        sleep 2;
        }
        #PRIVATE NETWORK    
        elsif($customize =~ /Private networking/){
        system ("dialog --inputbox 'Enter the network address which you want to allow (eg. 192.168.0.0/24)' 15 40 2> /tmp/network.txt");
        open FILE6, "/tmp/network.txt" or die $!;
        chomp(my $network = <FILE6>);
        `iptables -I INPUT -s $network -j ACCEPT`;
        system ("dialog --infobox 'Network $network is allowed and rest networks are blocked' 05 35");
        sleep 2;
        }
        #ALLOW LO
        elsif($customize =~ /Allow lo/){
        `iptables -I INPUT -i lo -j ACCEPT`;
        system ("dialog --infobox 'Local interface is allowed.' 05 35");
        sleep 2;
        }
        #SAVE
        elsif($customize =~ /Save/){
        `service iptables save`;
        system ("dialog --infobox 'All rules have been saved successfully' 05 45");
        sleep 2;
        }
        #EXIT
        elsif($customize =~ /Exit/){
        system ("dialog --infobox 'Closing application.' 05 35");
        sleep 2;
        exit 0;
        }
                else{
                        exit;
                }
}
  

perl file.plx

错误

sh: -c: line 0: unexpected EOF while looking for matching `'' 
sh: -c: line 1: syntax error: unexpected end of file

如何解决此错误?

2 个答案:

答案 0 :(得分:6)

在此处遗漏'"Allow IP'

答案 1 :(得分:1)

您忘记了'

. "Allow IP' 'Block all except one IP' "

在Perl代码第7行的Allow IP'之前。