#!/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
它在第7行显示错误,并且在
[ $((year % 4)) -eq 0]
7条答案
按热度按时间prdp8dxp1#
你把它弄得太复杂了。使用以下代码计算闰年:
测试它:
rwqw0loc2#
你错过了一些空白,这是必要的bash:
e5njpo683#
测试此代码:
whlutmcx4#
我喜欢一行程序,因为我需要编写很多脚本,下面是awk的解决方案和测试代码:
!/bin/csh -f
设定年份=“1898 1899 1900 1901 1902 1903 1904 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2016”
foreach year($年)echo -n“$年“echo $年|awk '{如果(($1%4)!=0){ly=0}否则{如果(($1%400)==0){ly=1}否则{如果(($1%100)==0){ly=0}否则{ly=1}}} END{如果(ly){打印“是”}否则{打印“否”}}' end
逻辑在本页的其他地方
im9ewurl5#
您也可以使用此选项
或
0lvr5msh6#
!/bin/bash
echo“输入年份(YYYY)”
读年
如果[ $((年%4))-等式0 ]
那么
如果[ $((年%100))-等式0 ]
否则
echo“今年是闰年”
菲
否则
呼应“不是闰年”
菲
vsmadaxz7#
如果您的shell支持-d参数,请尝试以下操作......
如果yyyy 0229存在,则返回日期和代码0,否则将抛出错误并返回代码1。