shell 日期类与字符串转数字的基本操作

20 篇文章 0 订阅

数字类型字符串转数字的方法

字符串转换成数字有方法:

  • $[]

  • $(())

  • expr

  • let

举例

shell里面怎么样把字符串转换为数字?
例如:a=“024”

  • 用${{a}}

  • 用let达到(()) 运算效果。

let num=0123;
echo $num; 
83

3,双括号运算符:

a=$((1+2));
echo $a;

等同于:

a=`expr 1 + 2`

应用代码

日期"20210107’字符串需要先截取年月日,然后获取数字,如"07" —>7。

使用 $[] 命令

# RUN_BATCH_DATE_TYPE: M: monthly(Run once a month)   W:weekly (Obtain results: 0 for Sunday, 1-6 for Monday to Saturday)  D:day (Every day) default day type
# RUN_BATCH_DATE: Specific batch running date .This field must be used with RUN_BATCH_DATE_TYPE default : RUN_BATCH_DATE=1
RUN_BATCH_DATE_TYPE="D"
RUN_BATCH_DATE=1
# Gets the day of the week for current system time
# WEEK_DAY=`date -d "" +%w`
# MONTH_DAY=`date -d "" +%d`

WEEK_DAY=`date -d "$end_date" +%w`
MONTH_DAY=`date -d "$end_date" +%d`

if [ $RUN_BATCH_DATE_TYPE == "D" ]; then
    echo "The run batch type is ${RUN_BATCH_DATE_TYPE} : Day"
elif [ $RUN_BATCH_DATE_TYPE == "W" ] && [ $[RUN_BATCH_DATE] == $[WEEK_DAY] ] ; then 
    echo "The run batch type is ${RUN_BATCH_DATE_TYPE} : weekly ,The running time is weekly : ${RUN_BATCH_DATE}"
elif [ $RUN_BATCH_DATE_TYPE == "M" ] && [ $[RUN_BATCH_DATE] == $[MONTH_DAY] ] ; then 
    echo "The run batch type is ${RUN_BATCH_DATE_TYPE} : monthly ,The running time is monthly  : ${RUN_BATCH_DATE}" 
else 
    # exit 0
    echo "No   ${RUN_BATCH_DATE_TYPE}  ${RUN_BATCH_DATE} " 

fi 

特别说明

$[] 在转换数字的时候,在不同的linux 环境,有时候失效。推荐使用 $(())

使用 $(()) 命令

if [ $Run_Batch_Date_Type == "D" ]; then
    echo "The run batch type is ${Run_Batch_Date} : Day"
elif [ $Run_Batch_Date_Type == "W" ] && [ $((Run_Batch_Date)) == $((WEEK_DAY)) ] ; then 
    echo "The run batch type is ${Run_Batch_Date} : weekly ,The running time is weekly : ${Run_Batch_Date}"
elif [ $Run_Batch_Date_Type == "M" ] && [ $((Run_Batch_Date)) == $((MONTH_DAY)) ] ; then 
    echo "The run batch type is ${RUN_BATCH_DATE_TYPE} : monthly ,The running time is monthly  : ${Run_Batch_Date}" 
else 
    
    echo "Not at script run time.  Run_Batch_Date_Type= ${Run_Batch_Date_Type}  Run_Batch_Date=${Run_Batch_Date},but WEEK_DAY= $WEEK_DAY ,MONTH_DAY= $MONTH_DAY"
    exit 0
fi 

exit 命令说明

exit 命令可以接受一个整数值作为参数,代表退出状态。如果不指定,默认状态值是 0。使用$?可以接收这个退出状态
退出状态为 0 表示成功,退出状态为非 0 表示执行失败(出错)。
注意:exit 退出状态只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。

参考链接

shell脚本字符串转换成数字

shell中将字符串转换成数字

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piepis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值