算术表达式:期望 EOF:“008 +1”

cra*_*ter 1 linux bash shell scripting

我的脚本./make_shift_ln_o_dummy.sh:

for i in  `seq -w 0 272`
do
y=0
x=1
echo $i
y=$(($i +$x))
echo $y
done
Run Code Online (Sandbox Code Playgroud)

我的输出带有错误消息:算术表达式:期望 EOF:“008 +1”

000
1
001
2
002
3
003
4
004
5
005
6
006
7
007
8
008
./make_shift_ln_o_dummy.sh: 25: arithmetic expression: expecting EOF: "008 +1"
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?我做错了什么?我该如何将其更改为272的输出?

gle*_*man 5

008 是一个八进制数。您可以指定要在算术表达式中使用以 10 为基数的数字:

y=$((10#$i +$x))
Run Code Online (Sandbox Code Playgroud)

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic