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

哈,偷个懒,解决。。。

目录
相关文章
|
12月前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
267 18
|
机器学习/深度学习 人工智能 Ubuntu
|
Linux 数据安全/隐私保护
HTCondor下多台Linux计算集群的搭建
HTCondor下多台Linux计算集群的搭建
HTCondor下多台Linux计算集群的搭建
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
588 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
349 3
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
392 2
|
安全 Shell Linux
探索Linux命令chsh:更改用户的默认shell
`chsh`是Linux命令,用于更改用户的默认登录shell。它涉及用户环境配置和系统安全,允许用户选择更适合自己的shell以提升效率。命令有交互式选项和参数如`-s`来指定新shell。在使用时要注意新shell的可执行性、权限问题及选择合适的shell。例如,要更改为bash,用户可运行`chsh`后按提示操作,而root用户能用`sudo chsh -s /bin/zsh john`为用户`john`设定zsh。在更改前,确认shell路径、权限,并了解不同shell的特点。
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
474 2
下一篇
开通oss服务