`
hany
  • 浏览: 62818 次
  • 性别: 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脚本学习教程PDF版

    Shell脚本,作为Linux/Unix系统中的编程工具,是一种强大的自动化任务执行手段。它基于Bourne shell或者其扩展版本,如bash(Bourne-Again SHell),提供了一种编写简单或复杂程序的方式,使得用户能够通过命令行...

    109个shell脚本合集.pdf

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

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

    IDEA中编写并运行shell脚本的实现 IDEA中编写并运行shell脚本的实现是指在Integrated Development Environment(IDE)中编写、配置和运行shell脚本的过程。该过程需要安装bashsupport插件,配置插件,安装git软件,...

    100个shell脚本合集

    在shell脚本中,可以通过监控Nginx日志来识别异常IP,例如当某个IP在短时间内访问次数超过设定阈值(如10次),则将其加入iptables防火墙的黑名单,阻止其继续访问。同时,脚本会记录被屏蔽的IP到 `/tmp/drop_ip.log...

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

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

    shell脚本学习指南pdf

    **Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...

    linux命令行与shell脚本编程.pdf

    Linux命令行与Shell脚本编程是一本专注于教授用户如何有效地使用Linux命令行和编写Shell脚本的书籍。该书的编纂目的是为了帮助读者掌握Linux操作系统下的命令行操作技能和自动化任务的脚本编程能力。内容涵盖了Linux...

    Shell脚本编程100例

    Shell脚本编程是Linux系统管理中的重要技能,它允许用户自动化执行一系列命令,大大提高工作效率。以下是一些关于Shell脚本编程的关键知识点: 1. **Hello World脚本**:这是所有编程语言的基础,用于验证环境设置...

    250个shell脚本

    Shell脚本是Linux/Unix操作系统中的强大工具,它允许用户编写一系列命令,形成自动化任务,以提高工作效率。本文档收集了250个实用的Shell脚本实例,涵盖了多个应用场景,包括系统管理、安全防护、数据库备份等核心...

    Shell 脚本编程实战100例.pdf

    从提供的文件内容来看,这是一本关于Shell脚本编程的实战教程书籍,以实例的方式教授读者如何使用Shell脚本来完成各种Linux系统运维任务。下面将详细介绍从给出的内容中能够总结出的一些Shell脚本编程知识点。 首先...

    Linux命令行与shell脚本编程大全_learn-linuxshell.zip

    Linux命令行与shell脚本编程大全是计算机编程领域中,针对Linux操作系统用户界面的一本权威指南。本书深入浅出地介绍了如何高效地利用命令行进行日常管理工作以及编写shell脚本来自动化任务处理。涵盖了从基础命令的...

    shell脚本编程100例

    shell脚本编程100例 Shell脚本编程是一种强大的编程语言,广泛应用于Linux和Unix操作系统中。本书《shell脚本编程100例》为读者提供了100个实战性的shell脚本编程实例,涵盖了检测网段主机状态、猜数字游戏、打印...

    C语言中文网shell脚本教程

    **C语言中文网shell脚本教程** 这是一份关于Shell脚本编程的离线学习资料,包含了一系列HTML文件,旨在帮助用户深入理解并掌握Linux Shell脚本编程技术。以下是其中涉及的一些关键知识点: 1. **Shell命令的本质**...

    shell脚本与Makefile区别.docx

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

    android系统中调用shell脚本

    在Android系统中,由于安全性和权限的限制,直接调用shell脚本并不像在Linux或Unix环境下那样简单。然而,对于非root用户来说,确实有一些方法可以实现对shell脚本的调用,尤其是在开发和调试过程中。下面我们将深入...

    Linux命令行与Shell脚本编程大全_shell-code.zip

    《Linux命令行与Shell脚本编程大全》是一本专注于Linux操作系统下命令行使用和Shell脚本编写的实用指南书籍。本书不仅涵盖了Linux操作系统的基本概念和基础命令,还深入介绍了如何通过Shell脚本来自动化管理任务,...

    如何让Android系统或Android应用执行shell脚本

    Android 系统或 Android 应用执行 shell 脚本的方法 Android 系统或 Android 应用执行 shell 脚本是 Android 开发中的一项重要技术,通过执行 shell 脚本,可以实现一些复杂的操作,例如设置网络参数、启动服务等...

    解决Unity不能调用shell脚本传递参数的问题

    ### 解决Unity不能调用shell脚本传递参数的问题 在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的...

    Shell脚本实现二维码图片生成

    Shell脚本是Linux系统中的一种强大工具,它允许用户通过编写命令行指令序列来执行自动化任务。在这个场景中,我们讨论的是一个特定的Shell脚本,它的目标是生成二维码图片。在旧有的系统中,如果没有源码可供修改,...

Global site tag (gtag.js) - Google Analytics