新手求教bash脚本错误:基数值过大
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12
新手求教bash脚本错误:基数值过大
写了这样一个简单脚本:
#!/bin/bash
#------------------------------------------
x=078
let y=$x+1
echo "$y" ;结果会报错:let: y=078: 基数值过大 (error token is "078");
因为专业的原因需要用“078”之类的三位数字,请教高手,这是什么原因呢?
#!/bin/bash
#------------------------------------------
x=078
let y=$x+1
echo "$y" ;结果会报错:let: y=078: 基数值过大 (error token is "078");
因为专业的原因需要用“078”之类的三位数字,请教高手,这是什么原因呢?
竢实扬华,自强不息!
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12
-
- 帖子: 49
- 注册时间: 2006-11-27 14:21
- 联系:
Re: 新手求教bash脚本错误:基数值过大
很简单啊,bash认为0开头的数字是8进制的,然而8进制只能使用0-7这几个数字,那个078里面有一个8,超过范围了。
-
- 帖子: 49
- 注册时间: 2006-11-27 14:21
- 联系:
Re: 新手求教bash脚本错误:基数值过大
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12
-
- 帖子: 8
- 注册时间: 2010-12-15 21:13
Re: 新手求教bash脚本错误:基数值过大
代码: 全选
#!/bin/bash
x=078
y=`expr $x + 1`
echo $y
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: 新手求教bash脚本错误:基数值过大
代码: 全选
printf "%03d\n" 1
- linxiaoyu
- 帖子: 39
- 注册时间: 2009-05-03 21:09
Re: 新手求教bash脚本错误:基数值过大
不懂楼主的意思,你好要用080么?你要用080的话,
x=078,你这么定义肯定不行。把问题发全给我们大家看看,
目前来看8楼的方法最好
x=078,你这么定义肯定不行。把问题发全给我们大家看看,
目前来看8楼的方法最好
GONE WITH THE WIND ~~~
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12
Re: 新手求教bash脚本错误:基数值过大
回复9楼:程序比较繁但是类似于这样
min=001
max=004
for((i=min;i<=max;i++))
do
mkdir $i
done
而创建的这个文件夹名格式必须为三位数,比如001,,002等;现在我是这样解决的:
min=001
max=004
let min=10#$min
let max=10#$max
for((i=min;i<=max;i++))
do
if (($i<10))
then
i=00idoy
elif (($i>=10)) && (($i<100))
then
i=0$i
fi
mkdir $i
let i=10#$i
done
比较笨的方法···
min=001
max=004
for((i=min;i<=max;i++))
do
mkdir $i
done
而创建的这个文件夹名格式必须为三位数,比如001,,002等;现在我是这样解决的:
min=001
max=004
let min=10#$min
let max=10#$max
for((i=min;i<=max;i++))
do
if (($i<10))
then
i=00idoy
elif (($i>=10)) && (($i<100))
then
i=0$i
fi
mkdir $i
let i=10#$i
done
比较笨的方法···
竢实扬华,自强不息!
-
- 帖子: 49
- 注册时间: 2006-11-27 14:21
- 联系:
Re: 新手求教bash脚本错误:基数值过大
那个太复杂了,可以用 seq,比如
seq还可以用 -f 去控制格式
代码: 全选
for i in $(seq -w 1 100)
do
mkdir $i
done
- linxiaoyu
- 帖子: 39
- 注册时间: 2009-05-03 21:09
Re: 新手求教bash脚本错误:基数值过大
11楼的方法没试过,我不知道seq命令。。汗一个,
另外结合八楼说的给出脚本
#!/bin/bash
rm temp >& /dev/null
nawk 'BEGIN{min=1;max=55;for (i=min;i<=max;i++){printf ("%03d\n",i)>"temp"}}'
mkdir `cat temp`
rm temp >& /dev/null
这里min,max均为10进制数,自己设定
bash下测试通过
另外结合八楼说的给出脚本
#!/bin/bash
rm temp >& /dev/null
nawk 'BEGIN{min=1;max=55;for (i=min;i<=max;i++){printf ("%03d\n",i)>"temp"}}'
mkdir `cat temp`
rm temp >& /dev/null
这里min,max均为10进制数,自己设定
bash下测试通过
GONE WITH THE WIND ~~~
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12
- trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
Re: 新手求教bash脚本错误:基数值过大
还有更方便的匪兵甲乙 写了:谢谢6 8 11 12楼的大力帮助!12楼的没怎么看懂···,我最后用的11楼的seq语句,感觉比较方便呵呵
代码: 全选
for i in {001..004};do echo $i ;done
002
003
004
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
- 匪兵甲乙
- 帖子: 10
- 注册时间: 2010-11-30 11:12