LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算

简介: 很高兴能开始是新的知识点,我在使用sh 运行hive脚本以后才发现不知不觉的时候我已经开始使用shell了。。。

很高兴能开始是新的知识点,我在使用sh 运行hive脚本以后才发现不知不觉的时候我已经开始使用shell了。。。

稀里糊涂的就开始用shell了,希望我以后会好好系统的学习下。

———————————————————1—BUG—2020-03-18——————————————

   在shell中用到一个上月同期的日期情况,本来2020-03-05就直接上个月取到了2020-02-05,可是忽然想到了北部完遇到的二月份的那个闰月的上年没有29号的问题,就想到13578十腊才有31号,我就开始解决这个判断:

export last_month_day="04-31" # 上月的月日 
export last_month_tq_day=31 # 上月的月日
if [[ $last_month_day -eq "02-30" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "02-29" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "04-31" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "06-31" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "09-31" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "11-31" ]]
then last_month_tq_day="30"
fi;
echo $last_month_tq_day

image.gif

shell我暂时只会写这中if结构,哈哈

按理说31号的问题解决了,但是,我一般都要逐个全部测试一次。。

注意:测到  export last_month_day="09-31" # 上月的月日 这句的时候,意外来了:

image.png

原来在shell中遇到 0开头的数字,默认会以八进制来计算,也就是说到8时就会溢出,网上说可以强制 还用10#搞成10进制,不过我并不是要计算,我的解决方法:

export last_month_day="09-31" # 上月的月日 
export last_month_tq_day=31 # 上月的月日
if [[ $last_month_day -eq "02-30" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "02-29" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "04-31" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "06-31" ]]
then last_month_tq_day="30"
fi;
# 特殊处理09
export jiu=${last_month_day:1:1}
if [[ $jiu -eq "9" ]] && [[ $last_month_tq_day -eq "31" ]]
then last_month_tq_day="30"
fi;
if [[ $last_month_day -eq "11-31" ]]
then last_month_tq_day="30"
fi;
echo $last_month_tq_day

image.gif

哈,偷个懒,解决。。。

目录
相关文章
|
19天前
|
Linux Shell 开发工具
Shell的运行原理以及Linux当中的权限问题
Shell的运行原理以及Linux当中的权限问题
31 0
|
22天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
23天前
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
21 1
|
23天前
|
Shell Linux UED
|
21天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
21天前
|
Shell Linux
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
12 1
|
存储 Shell Linux
Linux shell编程 9 ---- 判断+运算符
 1 判断     1 简单if语句        if expression        then               statement               statement        fi     ...
726 0
|
Shell Linux
Linux shell编程 3 ---- shell中的判断
 1 test判断     1 test -f $文件名 判断文件是否存在        test -f $文件名        举例:通过test -f命令去查找/home下是否存在input.
865 0
|
2天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
9 0
|
1天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形3
【4月更文挑战第29天】
7 0