`
hany
  • 浏览: 60756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

shell脚本

阅读更多
shell脚本不熟悉。改人家的脚本
#!/usr/bin/bash
#echo "Subshell level = $BASH_SUBSHELL"


#计算上月末日期
getlastMonthLastDay()
{
	str=$1
	
	year=`echo $str|cut -c1-4`
	month=`echo $str|cut -c5-6`
	day=`echo $str|cut -c7-8`
	
	yy=$year
	mm=`echo $month-1|bc`
	[ $mm -lt 1 ] && mm=12;
	if [ $mm -eq 12 ]
		then
			yy=`expr $yy - 1`
	fi
	if [ $mm -lt 10 ]
		then
			mm=`echo 0$mm`
	fi
	aaa=`cal $mm $yy`
	dd=`echo $aaa|awk '{print $NF}'`
	echo $yy$mm$dd
}
#计算某个日期是星期几
getWeekDay()
{
	str=$1
	year=`echo $str|cut -c1-4`
	month=`echo $str|cut -c5-6`
	day=`echo $str|cut -c7-8`
	b=`cal $month $year|wc -l `
	week=`cal  $month  $year |awk  '{for(i=1;i<=NF;i++){if($i=='$day'){if (NR=='"$b"'-1){print i-1}else{print 7-NF+i-1}}}}'`
	echo $week;
}
#计算某个日期的前n天
getBeforeDays()
{
	str=$1
	days=$2
	yy=`echo $str|cut -c 1-4`
	mm=`echo $str|cut -c 5-6`
	dd=`echo $str|cut -c 7-8`
	sav_dd=$days
	days=`expr $days - $dd`
	while [ $days -ge 0 ]
	do
      mm=`expr $mm - 1`
      [ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1`
      aaa=`cal $mm $yy`
      bbb=`echo $aaa|awk '{print $NF}'`
      days=`expr $days - $bbb`
	done
	dd=`expr 0 - $days`
	expr $dd : "^.$" > /dev/null && dd=0$dd
	expr $mm : "^.$" > /dev/null && mm=0$mm
	echo $yy$mm$dd
}
#计算上周五的日期 当天为周五即为当天
getlastFri()
{
	now=$1
	todayweek=`getWeekDay "$nowdate"`
 	week=`expr $todayweek + 0`
 	
	case $todayweek in
 	0) laseFri=`getBeforeDays "$now" "2"`;;
 	1) laseFri=`getBeforeDays "$now" "3"`;;
 	2) laseFri=`getBeforeDays "$now" "4"`;;
 	3) laseFri=`getBeforeDays "$now" "5"`;;
 	4) laseFri=`getBeforeDays "$now" "6"`;;
 	5) laseFri=$now;;
 	6) laseFri=`getBeforeDays "$now" "1"`;;
 	esac
 	echo $laseFri
}


main(){
	#year=`date +%Y`
	#mon=`date +%m`
	#day=`date +%d`
	year=2008
	mon=03
	day=01

	nowdate=`echo $year$mon$day`
	echo $nowdate
	
	if [ $day -lt 10 ]
    then
       echo -n "月报:"
 				 lastmonthday=`getlastMonthLastDay "$nowdate"`
 				 echo $lastmonthday	
		else
		 if [ $day -lt 20  ]
		 		then
					echo -n "上旬报:"
					day=10
					echo $year$mon$day
			else
					echo -n "中旬报:"
					day=20	
					echo $year$mon$day				
		 fi
	fi
	echo -n "周报日期为:" 	
 	fri=`getlastFri "$nowdate"`
 	echo $fri
}

main


原帖地址http://bbs.chinaunix.net/viewthread.php?tid=9178&extra=&page=1
分享到:
评论

相关推荐

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    Shell脚本中获取进程ID的方法

    我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要...

    shell脚本与Makefile区别.docx

    "shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...

    输出执行操作和打印日志的shell脚本实例

    cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间...log_error打印shell脚本

    250个shell脚本

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来...

    Shell脚本专家指南

    Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...

    Linux_shell脚本全面学习

    Linux_shell脚本全面学习 Linux_shell脚本全面学习

    Shell脚本编程100例

    Shell脚本编程100例。 融汇 shell 脚本知识点,集大成之作。 本书实在是学习、进修、面试、居家旅行必备精品!

    shell脚本写的加密脚本

    学习shell脚本,了解linux知识。

    常用shell 脚本,dos攻击防范,

    常用shell脚本, Dos攻击防范(自动屏蔽攻击IP).sh 一键部署等等 Linux系统发送告警脚本.sh MySQL数据库备份单循环.sh MySQL数据库备份多循环.sh nginx 访问访问日志按天切割.sh nginx.conf nginx访问日志分析...

    23 个非常实用的 Shell 脚本实例.doc

    Shell 脚本实例集锦 Shell 脚本是一种强大的工具,能够帮助程序员和系统管理员自动完成枯燥的工作,提高工作效率。以下是 23 个非常实用的 Shell 脚本实例,展示了 Shell 脚本编程的实用技术和常见工具用法。 一、...

    IDEA中编写并运行shell脚本的实现

    主要介绍了IDEA中编写并运行shell脚本的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    109个shell脚本合集.pdf

    109个shell脚本合集.pdf

    LinuxShell脚本编程实例.doc

    Linux Shell脚本编程实例 Linux Shell脚本编程实例是指使用Linux操作系统的Shell来编写脚本程序,实现自动化任务、批处理和system administration等功能。本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和...

    Linux-shell脚本全面学习.pdf

    Linux-shell脚本全面学习.pdf

    5个实用的shell脚本面试题和答案

    1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录。 答案 : 输出用户名,当前日期和时间,以及当前工作目录的命令就是logname,date,who i am和pwd。 现在,创建一个名为userstats.sh文件,将下面...

    Linux Shell 脚本编程入门教程

    用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的...

    Linux shell 脚本 markdown文本编辑

    有关几个shell脚本的编写,如:编写一个shell脚本程序,它带一个命令行参数,这个参数是一个文件。如果这个文件是一个普通文件,则打印文件所有者的名字和最后的修改日期...加入了自己的注释理解

    linux 通讯录shell脚本

    linux通讯录的shell脚本,很多linux大作业都需要

    提高cpu利用率的shell脚本

    需要提高cpu利用率的shell脚本

Global site tag (gtag.js) - Google Analytics