shell脚本项目

2016-10-20  本文已影响0人  帅碧

项目

项目1

  • 自动产生当天的文件夹,提供每天写代码使用
  1. 判断有几个参数
  • xx.sh
  • xx.sh -y
  • xx.sh -y -m
  • xx.sh -y -m -d
    在用户主目录下创键年份的文件夹并读取当年年份
    自动生成当前年份文件夹:判断是否已存在;
    如果存在 提示已存在,如果不存在,创建
  1. 再读取当前月份:在2016文件夹下创建10月,自动生成当前月份文件夹:判断是否已存在,如果存在,提示已存在,如果不存在,提示创建
  2. 再读取当前号:在~/2016/10/下面创建号的文件夹:判断是否已经存在,如果存在,提示已经存在,如果不存在,创建,最后创建成功
file=`date +%Y/%m%d`
echo "${file}"
  1. 万年历
  • 输入查询年份2016,再输入查询月份9
  • 1990.1.1星期一
  • 查询范围1990.1.1之后查询
  • 闰年判断条件(year%4==0&&year%100!=0)||(year%400==0)
  • 思路:计算1990.1.1~2016.8.31所有的天数
  • 十月 2016
    
日 一 二 三 四 五 六
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
  • 输出万年历
  1. 判断当年是否为闰年
  2. 如果是闰年,2月输出为29天
  3. 再求出当年前一年12月31号为星期几
  4. 然后打引当年1月份的日历,

$1 $2用法

test()
{
   echo "$0"
   echo "$1"
   echo "$2"
}
test 1 2

  1. 函数里的$0与函数外的$0一样,表示shell本身 xx.sh.函数里的$1表示test调用时的第一个参数如上为1,函数里的$2,在test调时的第二个参如上为2

callwhat()
{   
   year=$1
   month=$2
}


if [ $1 -eq 0 ]
then
   argument1=` date +%Y`
   argument2=` date +%m%d`
   callwhat "${argument1}" "${argument2}"
elif [ $1 -eq 2 ]
then
   argument1=$1
   argument2=$2
   callwhat "${argumet1}" "${argument2}"
else
   echo "参数太多"
fi

  • 注意点
  1. callwhat里面的$1,$2表示调用callwhat时的第一个参数argument1,和第二个参数argument2;另外:argument1=$1 表示的是运行 ** ./xx.sh 2016 3** $1为外面的2016,$2为外面的3。此时的$1和$2与函数里的$1和$2代表的内容不同。这样再把argument1=$1里面的2016存到函数里的year里,argument2=$2里面的3存到month里。
上一篇下一篇

猜你喜欢

热点阅读