用于检查闰年的我的shell脚本显示错误

2 bash shell

#!/bin/bash

echo "Enter the year (YYYY)"
read year

if[ $((year % 4)) -eq 0] 
then
  if[ $((year % 100)) -eq 0] 
    then
    if[ $((year % 400)) -eq 0] 
          then 
        echo "its a leap year"
    else
           echo "its not a leap year"
    fi
  else
  echo "Its not a leap year"
  fi
else
 echo "its not a leap year"

fi
Run Code Online (Sandbox Code Playgroud)

它在第7行显示错误,也在

[ $((year % 4)) -eq 0] 
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 11

你太复杂了.使用此代码来计算闰年:

isleap() { 
   year=$1
   (( !(year % 4) && ( year % 100 || !(year % 400) ) )) &&
      echo "leap year" || echo "not a leap"
}
Run Code Online (Sandbox Code Playgroud)

测试一下:

$ isleap 1900
not a leap
$ isleap 2000
leap year
$ isleap 2016
leap year
$ isleap 1800
not a leap
$ isleap 1600
leap year
Run Code Online (Sandbox Code Playgroud)