shell 判断输入的年份是闰年还是非闰年

输入一个年份,判断是闰年还是非闰年;闰年是能被4整除但是不能被100整除;或者能被400整除的年份

while :
do
  echo "please input a year"
read year
if [[ $(expr $year % 4) == 0 && $(expr $year % 100) != 0 ]]
then
  echo " $year shi runnian"
elif [ $(expr $year % 400) == 0]
then
  echo " $year is runnian"
else
  echo "$year is not runnian"
fi
done

但是,刚开始写判断时,写的是 

if [[ $(`expr $year % 4`) == 0 && $(`expr $year % 100`) != 0 ]],运行后一直报错;
后来改为把判断的条件值先写出来然后再判断,如下
val1=`expr $year % 4`
val2=`expr $year % 100`
val3=`expr $year % 400`
if [[ $val1 -eq 0 && $val2 -ne 0]]

这样写也是可以的。

 

但是有一点一直没明白,为何按下面这样写法就会报错

if [[ $`expr $year % 4` == 0 && $`expr $year % 100` != 0 ]]


 

 

posted @ 2021-12-29 15:31  袁小文子  阅读(720)  评论(0)    收藏  举报