Linux Shell脚本:如果语句为true,如何强制显示上一个查询?

Linux Shell脚本:如果语句为true,如何强制显示上一个查询?,linux,bash,shell,Linux,Bash,Shell,我已经编写了一个自动安装NRPE的脚本,该脚本执行的步骤之一是询问您希望如何安装守护进程(standalone/xinetd)。 如果用户选择了xinetd,我将运行一个检查文件/etc/init.d/xinetd是否存在,如果不存在,脚本将打印“xinetd未安装!”并在它之后立即显示中断 以下是脚本的相关部分: echo "How would you like to configure the NRPE daemon?" select DMN in 'Xinetd' 'Standalone

我已经编写了一个自动安装NRPE的脚本,该脚本执行的步骤之一是询问您希望如何安装守护进程
(standalone/xinetd)
。 如果用户选择了
xinetd
,我将运行一个检查文件
/etc/init.d/xinetd
是否存在,如果不存在,脚本将打印“xinetd未安装!”并在它之后立即显示
中断

以下是脚本的相关部分:

echo "How would you like to configure the NRPE daemon?"
select DMN in 'Xinetd' 'Standalone Daemon'; do
if [ "$DMN" = "Xinetd" ];
  then
                DMNMODE="xinetd"
                if [ -e $XINETDSVC ]; then
        cat << EOF > $XINETDFILE
service nrpe
{
        flags           = REUSE
        type            = UNLISTED
        port            = $NRPEPORT
        socket_type     = stream
        wait            = no
        user            = $NGUSER
        group           = $NGGROUP
        server          = /usr/sbin/nrpe
        server_args     = -c $NRPECFG --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1 $NAGIOSSRV
}
EOF
        $XINETDSVC restart
                else
                        echo "Xinetd is not installed!"
                        break
                fi
break
elif [ "$DMN" = "Standalone Daemon" ];
        then
                DMNMODE="daemon"
                chkconfig nrpe on ; $NRPESVC start
break
fi
done
echo“您希望如何配置NRPE守护进程?”
在“Xinetd”“独立守护程序”中选择DMN;做
如果[“$DMN”=“Xinetd”];
然后
DMNMODE=“xinetd”
如果[-e$XINETDSVC];然后
cat$XINETDFILE
服务nrpe
{
标志=重用
类型=未列出
端口=$NRPEPORT
套接字类型=流
等待=否
用户=$NGUSER
组=$NGGROUP
服务器=/usr/sbin/nrpe
服务器参数=-c$NRPECFG--inetd
登录失败+=用户ID
禁用=否
仅_from=127.0.0.1$Nagiosrv
}
EOF
$XINETDSVC重新启动
其他的
echo“Xinetd未安装!”
打破
fi
打破
elif[“$DMN”=“独立守护程序”];
然后
DMNMODE=“守护进程”
chkconfig nrpe on$NRPESVC启动
打破
fi
完成
这个想法是,如果文件不存在,这意味着没有安装
xinetd
,我希望脚本再次询问用户希望如何安装服务。 但是在实际操作中,当我运行脚本时,如果我选择
xinetd
,而
xinetd
未安装,那么脚本将打印“xinetd未安装”,然后继续脚本中的下一步

我认为在
if语句中插入
break
将中断并让用户回到最后一个问题。。。但事实并非如此,我做错了什么?
提前感谢

仅当提供的输入有效时,您才想
中断

中断
将中断
选择


不要
中断
选择
将再次循环。

中断
替换为
继续
@itaiga在
elif
之前不要删除
中断
。在未安装echo Xinetd后,移除
断路器
。在
$XINETDSVC重新启动后添加
中断
。当你能做到他们说的话时,你只想打断,而不是一直打断。