shell脚本

今天的成果

shell转化时间,判断前15分钟,在一个小时的第几个5分钟区间段:

#!/bin/sh
param_nowTimeMin=`date -d -0hour +%Y%m%d%H%M`
param_nowTimeHour=`date -d -0hour +%Y%m%d" "%H`
param_nowTime=`date -d -0hour +%s`
result=`expr $param_nowTime - 900`
result2=`expr $param_nowTime - 600`
param_day_id=`date -d @"$result" +%Y%m%d`
param_hour_id=`date -d @"$result" +%H`
param_day_hour=`date -d @"$result" +%Y%m%d" "%H`
param_lastBegin=`date -d @"$result" +%Y%m%d%H%M`
param_mid_hour=`date -d @"$result2" +%Y%m%d" "%H`
param_MidBegin=`date -d @"$result2" +%Y%m%d%H%M`
param_beginMinute=`echo ${param_nowTimeMin:0-2:2}`
param_lasttimeMinute=`echo ${param_lastBegin:0-2:2}`
param_MidtimeMinute=`echo ${param_MidBegin:0-2:2}`
a=$(( 10#$param_beginMinute % 5 ))
b=$(( 10#$param_lasttimeMinute % 5 ))
c=$(( 10#$param_MidtimeMinute % 5 ))
pos=`expr $param_beginMinute - $a`
sop=`expr $param_lasttimeMinute - $b`
mtd=`expr $param_MidtimeMinute - $c`
if [ $pos -lt 05 ] ; then
beginMinute="(55-60)"
else
pos5=`expr $pos - 5`
beginMinute="($(printf "%02d" "$pos5")-$(printf "%02d" "$pos"))"
fi
sop5=`expr $sop + 5`
mtd5=`expr $mtd + 5`
endMinute="($(printf "%02d" "$sop")-$(printf "%02d" "$sop5"))"
midMinute="($(printf "%02d" "$mtd")-$(printf "%02d" "$mtd5"))"
param_start=$param_day_hour$endMinute
param_mid=$param_mid_hour$midMinute
param_end=$param_nowTimeHour$beginMinute
echo $param_start
echo $param_mid
echo $param_end

参考链接:

1. SHELL算术运算(加减乘除求余数):https://blog.csdn.net/qq_41419761/article/details/84033620

2. SHELL脚本的4种执行方式:https://www.jb51.net/article/161001.htm

3. 更新LINUX文件名的命令:---------------mv zhidao.txt baidu.txt           

4.shell计算指定时间的n分钟前:--------------https://blog.csdn.net/xiangliangyu/article/details/82585738?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

5.echo 反引号的作用:https://blog.csdn.net/Dreamhai/article/details/103431851?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

6.vim 不小心按了ctrl z怎么解决:https://blog.csdn.net/lzwgood/article/details/101052252 

7.shell字符串拼接方法:http://c.biancheng.net/view/1114.html

8.date -d @的作用

date -d配合@使用,@后面加的是秒数,Linux系统使用1970年一月一日作为时间起点,很版多时间戳使权用当前时间离时间起点的秒数差距来表示,所以需要使用date -d @来转换为可视化的时间日期,比如:

date -d @1564049358 会转换为:
Thu Jul 25 18:09:18 CST 2019
date -d @0 表示为
Thu Jan 1 08:00:00 CST 1970
date --date的使用格式为date --date='string'
date -d @1564049358 等价于 date --date='@1564049358'

9.报错:value too great for base (error token is "08"):https://www.cnblogs.com/patf/p/4701472.html

10.shell 比较大小:https://blog.csdn.net/weixin_41995170/article/details/83928807

11.设置输出格式保持两位数:https://bbs.csdn.net/topics/350191177

原文地址:https://www.cnblogs.com/liuguangshou123/p/13919659.html