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
分享到:
相关推荐
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要...
"shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...
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脚本
Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来...
Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...
Linux_shell脚本全面学习 Linux_shell脚本全面学习
Shell脚本编程100例。 融汇 shell 脚本知识点,集大成之作。 本书实在是学习、进修、面试、居家旅行必备精品!
学习shell脚本,了解linux知识。
常用shell脚本, Dos攻击防范(自动屏蔽攻击IP).sh 一键部署等等 Linux系统发送告警脚本.sh MySQL数据库备份单循环.sh MySQL数据库备份多循环.sh nginx 访问访问日志按天切割.sh nginx.conf nginx访问日志分析...
Shell 脚本实例集锦 Shell 脚本是一种强大的工具,能够帮助程序员和系统管理员自动完成枯燥的工作,提高工作效率。以下是 23 个非常实用的 Shell 脚本实例,展示了 Shell 脚本编程的实用技术和常见工具用法。 一、...
主要介绍了IDEA中编写并运行shell脚本的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
109个shell脚本合集.pdf
Linux Shell脚本编程实例 Linux Shell脚本编程实例是指使用Linux操作系统的Shell来编写脚本程序,实现自动化任务、批处理和system administration等功能。本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和...
Linux-shell脚本全面学习.pdf
1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录。 答案 : 输出用户名,当前日期和时间,以及当前工作目录的命令就是logname,date,who i am和pwd。 现在,创建一个名为userstats.sh文件,将下面...
用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的...
有关几个shell脚本的编写,如:编写一个shell脚本程序,它带一个命令行参数,这个参数是一个文件。如果这个文件是一个普通文件,则打印文件所有者的名字和最后的修改日期...加入了自己的注释理解
linux通讯录的shell脚本,很多linux大作业都需要
需要提高cpu利用率的shell脚本