• 关于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获取信息的所以对系统资源的消耗比较大,当然大家如果需要备份的目录不变的话就可以直接读取一个路径文档

    可以较少对系统的消耗!

  • 相关阅读:
    web程序入门六(缓存)
    web程序入门五(http无状态)
    web程序入门四(webform常用成员)
    web程序入门三(分页)
    web程序入门二(webforms web窗体 aspx)
    CodeForce 710E
    CodeForce 710C Magic Odd Square
    CodeForce 710B Optimal Point on a Line
    CodeForce 710A King Moves
    HDU 4003
  • 原文地址:https://www.cnblogs.com/patf/p/4701472.html
Copyright © 2020-2023  润新知