奇怪的破折号算术

jm6*_*666 2 bash sh dash-shell

有以下内容:

#!/usr/bin/env dash
seq -w 10 | while read -r num
do
    echo $num: $((num + 1))
done
Run Code Online (Sandbox Code Playgroud)

版画

01: 2
02: 3
03: 4
04: 5
05: 6
06: 7
07: 8
sd: 3: sd: Illegal number: 08
Run Code Online (Sandbox Code Playgroud)

谁能解释一下上面的dashartihmetic有什么问题?

请注意,它是一个破折号(不是bash)脚本.

也标记了它,bash也是来自bash专家的更多关注.:)

anu*_*ava 5

问题0在您的seq输出中导致使其成为八进制数,并且上面的任何内容07都是无效的八进制数.

请注意,此脚本可以正常工作而不会出现错

seq 10 | while read -r num; do echo "$num: $((num + 1))"; done
Run Code Online (Sandbox Code Playgroud)