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

    可以较少对系统的消耗!

  • 相关阅读:
    python3中类(class)的一些概念
    python 第三方库paramiko
    阿里云盘PC版开放了
    解决c#,wpf程序带环境安装包体积太大问题
    【利用静态网站传输数据】
    【.net】创建属于自己的log组件——改进版
    ThingsBoard 3.2.2 发布
    mac 安装pip2
    cocos creator2.4.3 内存优化总结
    cocos creator2.4.3 组件 节点 预制体
  • 原文地址:https://www.cnblogs.com/patf/p/4701472.html
Copyright © 2011-2022 走看看