Shell编程,以函数的形式实现月份的显示,函数的作用是:在用户传送一个月份数字之后显示英文字符串形式的月份(或一条错误信息)并显示月份对应的天数。注意“平年”与“闰年”2月份天数的不同
时间: 2023-03-29 20:02:21 浏览: 90
函数的存储和显示-Linux Shell 脚本编程
以下是我AI模型的回答:
可以使用以下Shell函数来实现月份的显示:
```shell
#!/bin/bash
function month() {
case $1 in
1) echo "January, 31 days";;
2)
if [ $(($2 % 4)) -eq ] && [ $(($2 % 100)) -ne ] || [ $(($2 % 400)) -eq ]
then
echo "February, 29 days (leap year)"
else
echo "February, 28 days (common year)"
fi;;
3) echo "March, 31 days";;
4) echo "April, 30 days";;
5) echo "May, 31 days";;
6) echo "June, 30 days";;
7) echo "July, 31 days";;
8) echo "August, 31 days";;
9) echo "September, 30 days";;
10) echo "October, 31 days";;
11) echo "November, 30 days";;
12) echo "December, 31 days";;
*) echo "Invalid month number";;
esac
}
month $1 $2
```
该函数使用了Shell的case语句来判断输入的月份,并根据月份的不同输出对应的英文字符串形式的月份和天数。对于2月份,还需要判断是否为闰年,根据闰年的规则来输出对应的天数。如果输入的月份不在1-12的范围内,则输出一条错误信息。
使用该函数的方法是在Shell中调用该函数并传入一个月份数字和一个年份,例如:
```shell
$ ./month.sh 2 202
February, 29 days (leap year)
```
这将输出202年2月份的英文字符串形式和天数。
阅读全文