shell整理(31)===判断平年闰年和嵌套循环的小例子
题目(一) 有1 2 3 4 四位数,任意组合有多少种互不相同且无重复的数字,分别是什么? shell代码如下: #!/bin/bash foriin`seq4` do forxin`seq4` do foryin`seq4` do [$x-eq$i]&&continue [$x-eq$y]&&continue [$i-eq$y]&&continue echo$i$x$y done done done 输出如下一共有24 种: [root@localhost ding]# bash 11.sh 123 124 132 134 142 143 213 ............ 例如:我们把题目改一下,还是1 2 3 4 输出如下规律 [root@localhost ding]# bash 12.sh 123 124 134 234 [root@localhost ding]# shell 代码如下: #!/bin/bash foriin`seq4` do forxin`seq$i4` do foryin`seq$x4` do [$i-eq$x]&&continue [$x-eq$y]&&continue echo$i$x$y done done done 第一个题对着这个图完全可以想出来,一共有64种,但是我们加上判断什么的最终筛选出24种 (二)用户任意输入四个数字,判断是平年还是闰年 判断规则: 看年份末两位不能被4整除的是平年,被4整除但末两位都是0 的,要看前两位能被4整除的是闰年,不能整除的是平年。例如:1996 、2000闰年 1990 、1997平年 输出如下: [root@localhost ding]# bash 14.sh Input:1996 Run Year [root@localhost ding]# bash 14.sh Input:2000 Run Year [root@localhost ding]# bash 14.sh Input:1990 Ping Year [root@localhost ding]# bash 14.sh Input:1997 Ping Year [root@localhost ding]# shell 代码如下: #!/bin/bash pre_1(){ a=${#REPLY} [-z$REPLY]&&echo-e" 33[32mplzInput! 33[0m"&&exit0 [$a-lt4]&&echo"PlzInputmorefournum!"&&exit0 } pre_2(){ b=`echo$REPLY|cut-c3-4` d=`echo$REPLY|cut-c1-2` c=$(($b%100))#判断后两位是俩0,这是一种方法 [$c-eq0]&&[$(($d%4))-eq0]&&echo"RunYear"&&exit0 [$c-eq0]&&[$(($d%4))-ne0]&&echo"PingYear"&&exit0 f=$(($b%4)) } echo-n"Input:" read pre_1 pre_2 if[$f-ne0];then echo"PingYear" else echo"RunYear" fi (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |