码迷,mamicode.com
首页 > 系统相关 > 详细

shell 脚本学习

时间:2016-04-07 18:40:29      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:shell   脚本   date   日期计算   

距离上一次写东西又隔了一段时间了,期间一直跟着私房菜学习,还是没养成定期做记录的习惯,今天就来写第一个脚本的编写吧。

经过几天的积累,学习了下shell脚本的编写,目前掌握的还不太成熟,凡事从小入手肯定是没错的,先写个简单的吧(难的也不会写o(╯□╰)o)。

这个脚本的执行方法,就是输入生日来计算当前日期距离生日还有多少天,如果已经过完生日则计算来年生日的时间。

#!/bin/bash
#Program:
#    Calculate how long it takes to have a birthday .
#History     MG    First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/sbin:~/bin
export PATH
echo -e "输入你的生日,格式:2016/04/07"
while [ "$bir" == "" ]
do
    read -p "请输入你的生日:" bir
done
mbir=$(date -d "$bir" +%j)
curdate=$(date +%j)
difdate=$((10#$mbir-10#$curdate))    #这里之所以变量之前加10#是将其转换为10进制再来进行计#算,不然后默认为8进制会报错。
if [ "$difdate" == 0 ];then
    echo "Happy birthday to you!"    #今天过生日
elif [ "$difdate -lt 0 ];then
    echo "And have $((-$difdate+365)) days to live."
else
    echo "And have $difdate days to live."

主要的还是利用date命令来进行日期的加减,通过read命令来进行用户输入生日,唯一需要注意的是换算成天数之后进行相减会出现“value too great for base”这个错误,网上查了资料说是要换算成10进制才可以,变量前加“10#”进行运算错误消除。

脚本虽然简单,一些细节方面可能也要再修改,不过刚开始来说还是收货颇多的,继续努力!

本文出自 “积小流,成江海” 博客,请务必保留此出处http://goodjoe.blog.51cto.com/9173556/1761389

shell 脚本学习

标签:shell   脚本   date   日期计算   

原文地址:http://goodjoe.blog.51cto.com/9173556/1761389

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!