如何使用while循环写一个小脚本?
admin
2023-01-21 02:40:52
0

在shell里使用while循环写成这样格式的交互式脚本,a和b都等于一个整数,要求报错有提示:

a-b=?

a+b=?

a*b=?

a/b=?

a**b=?

a%b=?

解:首先我们分析一下题意,输出2个整数的加 减 乘 除 幂 取余的结果,要求不要报错可以理解为只能输入2个整数,ready go!

while true
#循环一直为真
do
    read -t 5 -p '请输入2个整数:' a b
    #用read读ab两个数并提示,5秒未输入即超时
    if [[ -z "$b" ]]; then
    #如果$b长度为空,就代表没有输入就echo提示
        echo '请输入2个整数'
        continue
        #结束当次循环,继续下一次循环
    fi
    expr 10 + $a + $b &>/dev/null
    #用10加$a和$b结果输出到空
    if [[ $? -ne 0 ]]; then
    #如果$a和$b加10的结果有问题,那么返回值就不等于0代表有问题,提示echo
        echo '只能输入2个整数'
        continue 
        #又结束本次循环,继续下一次循环
        #到这里我们的判断就完成了,所以只有输入2个整数才能继续进行运算
    fi
    echo "a-b=$(($a-$b))"
    echo "a+b=$(($a+$b))"
    echo "a*b=$(($a*$b))"
    echo "a/b=$(($a/$b))"
    echo "a**b=$(($a**$b))"
    echo "a%b=$(($a%$b))"
done

脚本复制粘贴即可使用

[root@node1]# sh test.sh
请输入2个整数:1 2
a-b=-1
a+b=3
a*b=2
a/b=0
a**b=1
a%b=1
请输入2个整数:10 23
a-b=-13
a+b=33
a*b=230
a/b=0
a**b=200376420520689664
a%b=10
请输入2个整数:12 2只能输入2个整数
请输入2个整数:
a-b=10
a+b=14
a*b=24
a/b=6
a**b=144
a%b=0
请输入2个整数:^C
[root@node1]# 

可以看到已经测试成功!

相关内容

热门资讯

还在点火?特朗普批准,美企或在... 美国《华尔街日报》7月22日报道,据美国官员透露,美国总统特朗普已正式批准与沙特阿拉伯达成一项具有里...
基本建成交通强国将取得决定性进... 新华社北京7月21日电 题:基本建成交通强国将取得决定性进展——国新办发布会聚焦“十五五”时期交通运...
台防务部门呼吁通过所谓无人机条... 7月22日上午,国台办举行例行新闻发布会。记者:据报道,台防务部门负责人近日称,呼吁通过行政部门无人...
英媒:为什么世界更相信中国而不... 当下西方世界深陷信任危机,民众对体制普遍失望愤怒。美国全球公信力持续崩塌,多国对华信任度已反超美国。...
“台青e家”平台上线运行,国台... 7月22日,国务院台办举行例行新闻发布会。有记者问:在海峡两岸青年文化月活动期间,国务院台办主任宋涛...
视频丨从“有学上”到“上好学”... 教育强国,基点在基础教育。我国拥有43万所中小学幼儿园、2.2亿在校生、1577万专任教师,建成了世...
“看到这几张脸生理性厌恶!”你... 近期,“对AI脸感到不适”相关话题接连冲上社交平台热搜。打开短视频平台刷微短剧,连续刷几部后,主角个...
今年上半年全国城镇新增就业69... 今天(22日)上午,人力资源社会保障部举行新闻发布会。今年上半年,全国城镇新增就业695万人,同比持...
委内瑞拉强震遇难人数升至534... 当地时间21日,委内瑞拉全国代表大会主席豪尔赫·罗德里格斯通过社交媒体通报,该国6月24日两次强震造...
高考684分花3000元咨询进... 潮新闻客户端 青年特约评论员 曾耀湘图源:视觉中国近日,据齐鲁晚报报道,河北一名2018级考生,因“...