与 "seq" 相比,为什么 "seq -w" 在 for 循环中不起作用?
Why "seq -w" does not work in a for loop, compared with "seq"?
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
这是"a good way"吗?我在 bash 中制作了一个小脚本,我需要在其中向程序输入两个文件。第一个文件是foo_02.txt,第二个文件是foo_01.txt
在算术表达式中,以0
开头的数字被视为八进制,因此它们不能有数字8
或9
。不要使用 seq -w
,而是在显示消息时使用 printf
.
添加零填充
for i in `seq 1 10`; do
printf "%02d más 1 = %02d\n" $i $(( i + 1))
done
在%
之后,修饰符0
表示补零,2
表示字段宽度为2个字符。
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
这是"a good way"吗?我在 bash 中制作了一个小脚本,我需要在其中向程序输入两个文件。第一个文件是foo_02.txt,第二个文件是foo_01.txt
在算术表达式中,以0
开头的数字被视为八进制,因此它们不能有数字8
或9
。不要使用 seq -w
,而是在显示消息时使用 printf
.
for i in `seq 1 10`; do
printf "%02d más 1 = %02d\n" $i $(( i + 1))
done
在%
之后,修饰符0
表示补零,2
表示字段宽度为2个字符。