码迷,mamicode.com
首页 > 系统相关 > 详细

关于shell脚本时遇value too great for base (error token is "08")

时间:2015-08-04 13:10:39      阅读:384      评论:0      收藏:0      [点我收藏+]

标签:

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

可以较少对系统的消耗!

 

关于shell脚本时遇value too great for base (error token is "08")

标签:

原文地址:http://www.cnblogs.com/patf/p/4701472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!