美文网首页
shell脚本做万年历

shell脚本做万年历

作者: ie大博 | 来源:发表于2016-10-14 09:22 被阅读0次

要求》》》》》先搭框架

  • 输入一个命令,比如,,,mycal,显示现在的月的月份
  • 运用函数
  • 制作命令$#
  • 注意数组后是小括号。。。。

如何计算实际天数

  • 先计算有多少年,闰年乘以366.平年乘以365.
  • 函数的使用可以减少代码量
  • 数组的使用,注意是(),和c语言不一样。
  • 一般不在中括号里面加小括号,麻烦。
mycal()
{
    year=$1#-----------------------------》注意和相面的主函数呼应
    month=$2
    i=1990
    allday=0
#   echo "$year"
#   echo "$month"
    arrayday=(0 31 28 31 30 31 30 31 31 30 31 30 31)#---》数组是小括号,注意第一个是0,arrayday【0】开始。
    #-------------------------------------------------------how many days about year
    while [ $i -le $year ]
    do
        if [ `expr $year % 4` == 0 -a `expr $year % 100` != 0 ] || [ `expr $year % 400 ` == 0 ]
        then
            let allday+=366
        else
            let allday+=365
        fi
        let i++

    done
#   echo "$allday"
    if [ `expr $year % 4` == 0 -a `expr $year % 100` != 0 ] || [ `expr $year % 400 ` == 0 ]
    then
        arrayday[2]=29
    else
        arrayday[2]=28
    fi
    i=1
    #----------------------------------------------------how many days about month
    while [ $i -lt $month ]#--------》i么有意义,
    do
        let allday+=arrayday[i]
        let i++

    done

    let space=allday%7
    echo  "${space}"
    i=0
    printf "      ${year}   ${month}\n"
    printf "Sun  Mon  Tue  Wed  Thu  Fri  Sta\n"
    day=1
    while [ $i -lt $space ]
    do
        printf "     "
        let i++
    done
    while [ $day -le  ${arrayday[${month}]} ]#---->》注意里面的month
    do
        printf " $day  "
        if [ $day -le 9 ]
        then
            printf " "
        fi
        let kongge=day+space
        if [ `expr $kongge  % 7` == 0 ]
        then
            printf "\n"
        fi
        let day++
    done
}

if [ $# -eq 0 ]
then
    argument1=`date +%Y`
    argument2=`date +%m`
    mycal $argument1  $argument2
elif [ $# -eq  2 ]
then 
    argument1=$1
    argument2=$2
    mycal $argument1  $argument2
else 
    echo "please input in right rule"
fi
printf "\n"

相关文章

  • shell脚本和C语言编写万年历

    shell脚本下编写万年历 代码如下: calWhat() { year=$1 month=$2 if [ $ye...

  • shell脚本做万年历

    要求》》》》》先搭框架 输入一个命令,比如,,,mycal,显示现在的月的月份 运用函数 制作命令$# 注意数组后...

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • 2018-09-26

    shell脚本 1.1、什么是shell脚本(shell script , ...

  • Shell script + crontab实现Mysql定时备

    一、Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所...

  • 嵌入式day12

    shell脚本的本质 shell脚本语言是解释型语言 shell脚本的本质:shell命令的有序集合 shell编...

  • shell脚本

    什么是shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说...

  • Shell脚本语法

    1. Shell脚本简介Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所...

  • Linux系统的Shell脚本传参(bash)2022-08-2

    Shell传参快速使用脚本 简便版 进阶版 getopt方法 getopts方法 做生信一般都绕不开Shell脚本...

  • shell脚本

    什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电...

网友评论

      本文标题:shell脚本做万年历

      本文链接:https://www.haomeiwen.com/subject/fpmwyttx.html