免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4838 | 回复: 11
打印 上一主题 下一主题

[网络相关] 我想让它输入三次错误就退出,如何更改程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-20 10:28 |只看该作者 |倒序浏览
#!/bin/bash

usage () {
        echo "格式错误,请重新输入"

       readip
       chkip
}

readip () {
        read -p "请输入IP: " IP
}


chkip () {
        echo "$IP" | grep -Eq '[^0-9.]|^\.|\.$' && usage
        [ $(echo -e "${IP//./\n}" | wc -l) -ne 4 ] && usage
        for i in ${IP//./ } ; do
                [ $((i/) -lt 32 ] || usage
        done
}

if [ "$1" ]; then
        IP=$1
else
        readip
fi
chkip
echo "$IP is good!"

论坛徽章:
0
2 [报告]
发表于 2013-12-20 10:29 |只看该作者
笑脸那里是个 “8”

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
3 [报告]
发表于 2013-12-20 10:44 |只看该作者
  1. 说两点
  2. 1发帖要禁用表情或者 用代码框提交
  3. 2 输入三次推出,你可以写个循环,定义一个计数变量
复制代码

论坛徽章:
0
4 [报告]
发表于 2013-12-20 10:49 |只看该作者
不好意思,第一次发贴,没懂规矩!以后注意,试过循环,但是不知道加在哪个位置。回复 3# 这个冬天不冷


   

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
5 [报告]
发表于 2013-12-20 11:09 |只看该作者
usage () {
        echo "格式错误,请重新输入"

       readip
       chkip
}

这个不就是输入错误时进入的地方吗
在这里加个计数器  

i++
(( i == 3 )) && exit

这样试试

论坛徽章:
0
6 [报告]
发表于 2013-12-20 11:15 |只看该作者
貌似不行!回复 5# rulebook


   

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
7 [报告]
发表于 2013-12-20 11:23 |只看该作者
回复 6# skydance123

这里改成这样
    usage () {
       echo "格式错误,请重新输入"
       i=$[i+1]
       (( $i == 3 )) && echo '111111' && exit
       readip
       chkip
}

运行结果
[root@localhost sh]# sh o
请输入IP: 123
格式错误,请重新输入
请输入IP: 123
格式错误,请重新输入
请输入IP: 1
23格式错误,请重新输入
111111

论坛徽章:
0
8 [报告]
发表于 2013-12-20 11:28 |只看该作者
多谢,OK了,我在想想还有没有别的方法也能做成这样。回复 7# rulebook


   

论坛徽章:
0
9 [报告]
发表于 2013-12-20 11:42 |只看该作者
我发现,这样改,你输入错的一次,然后在输入正确的一次,会报错的。回复 7# rulebook


   

论坛徽章:
0
10 [报告]
发表于 2013-12-20 11:47 |只看该作者
本帖最后由 skydance123 于 2013-12-20 11:51 编辑

貌似还是不行,去了一个done 就不对了。回复 7# rulebook


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP