zoukankan      html  css  js  c++  java
  • 关于shell脚本时遇value too great for base (error token is "08")

    今天在书写一个定时cp脚本时遇到了一个问题,value too great for base (error token is "08")

    在网上查看到原来是以0开头的数字 系统会默认识别为八进制数,所以我的 $datem-1这样的获取上个月的月份是回报:value too great for base (error token is "08")这个错误的,解决办法就是

    将$datem格式或者声明称十进制,`10#$datem`-1  这样就可以了。  也就是将要转换成十进制的变量或者数字 在前面加上`10#`即可:

    给出我的代码:

    [root@morp shell]# vi backwebdb.sh 
    #!/bin/bash
    #admin fengtaotao Email:23956580@qq.com
    #Fri Jul  3 16:35:48 CST 2015
    pathh=/web/www/morp/musicFile/
    pathd=/opt2/musicFile/
    datem=`date +%m`
    
    if [ "$datem" == 01 ] ;then
            datem="_12"
            datey=`date +%Y`
            datey=$(($datey-1))
    else   
            datem="$((10#$datem-1))"
    #       datey=`date +%Y`
            echo $datem
    fi
    echo $datey
    #echo $datem
    
    #dird="$datey$datem"
    
    
    #readd=`date +%N`.txt
    
    #find $pathh -name $dird &>> $readd
    
    #for i in $(cat $readd);do
    #       aac=$(echo $i | awk -F "/" '{print $6"/"$7"/"}')
    #       aac=${pathd}${aac}
    #       cp -r $i $aac &>>dbcp.log
    #done
    
    #rm -rf $readd

    OK这样问题就解决了

    然后将没有执行备份的重新执行,由于我这个脚本时用find获取信息的所以对系统资源的消耗比较大,当然大家如果需要备份的目录不变的话就可以直接读取一个路径文档

    可以较少对系统的消耗!

  • 相关阅读:
    [spring] SpEL
    [spring学习2] 装配
    [spring] proxyMode
    [spring] @PropertySource
    [一些问题] 在vscode中添加jar库
    [spring] ApplicationContext相关问题
    gradle 打包
    [spring学习1] IoC容器
    spring快速开始
    准备要写的笔记备忘录
  • 原文地址:https://www.cnblogs.com/patf/p/4701472.html
Copyright © 2011-2022 走看看