#!/usr/bin/perl
use warnings;
#WINDOW 1
system ("dialog --keep-window --menu Customize 10 70 50 'Flush rules' 'Clear all the rules' 2> /tmp/customize.txt ");
open FILE4, "/tmp/customize.txt" or die $!;
chomp(my $customize = <FILE4>);
if($customize =~ /Flush rules/){
`iptables -F`;
system ("dialog --infobox 'All tables have been flushed.' 05 35");
}
else{
exit;
}
执行上述代码后,会出现一个对话框,显示刷新规则的选项。当我按Enter键时,执行命令iptables -F
并刷新所有iptables规则。之后程序终止。我希望在刷新所有规则之后,启动的窗口,即提供刷新规则的选项不应该关闭。冲洗规则后,程序不应终止。它应该回到 window1 。
答案 0 :(得分:3)
如何围绕它:
while (1)
{
#WINDOW 1
... rest of program
}
您可以在对话框中添加退出选项,并在选择该选项时中断while循环。
答案 1 :(得分:0)
尽管dialog
使这很容易,但它并不是最灵活的解决方案。适当的GUI应用程序将具有单个窗口,其外观响应于通过回调的用户交互而改变。 Perl有很多工具可以做到这一点;如果您使用的是GTK,请查看gtkperl。或者查看http://perl-begin.org/uses/GUI/