2015-10-23 39 views
1
for i in `seq -w 01 10`; do echo "$i más 1 = $(($i + 1))" ; done 

01 más 1 = 2 
02 más 1 = 3 
03 más 1 = 4 
04 más 1 = 5 
05 más 1 = 6 
06 más 1 = 7 
07 más 1 = 8 
bash: 08: value too great for base (error token is "08") 

for i in `seq 01 10`; do echo "$i más 1 = $(($i + 1))" ; done 

1 más 1 = 2 
2 más 1 = 3 
3 más 1 = 4 
4 más 1 = 5 
5 más 1 = 6 
6 más 1 = 7 
7 más 1 = 8 
8 más 1 = 9 
9 más 1 = 10 
10 más 1 = 11 

这是“一种好方法”吗?我在bash中创建了一个小脚本,我需要将两个文件输入到程序中。第一个文件是foo_02.txt,第二个是foo_01.txt为什么“seq -w”在for循环中不起作用,与“seq”相比?

回答

3

在算术表达式,与0开头数字为八进制处理,所以他们不能有数字89。而不是使用seq -w,使用printf显示消息时添加零填充。

for i in `seq 1 10`; do 
    printf "%02d más 1 = %02d\n" $i $((i + 1)) 
done 

%后,0改性剂是指用零垫,以及2意味着字段宽度是2个字符。