Bash 奇异破折号算法

Bash 奇异破折号算法,bash,sh,dash-shell,Bash,Sh,Dash Shell,具有下列特征: #!/usr/bin/env dash seq -w 10 | while read -r num do echo $num: $((num + 1)) done 印刷品 01: 2 02: 3 03: 4 04: 5 05: 6 06: 7 07: 8 sd: 3: sd: Illegal number: 08 有人能解释一下上面的dashartihmetic有什么问题吗 注意,它是一个破折号(不是bash)脚本 也将其标记为bash,以引起bash专家的更多关注:

具有下列特征:

#!/usr/bin/env dash
seq -w 10 | while read -r num
do
    echo $num: $((num + 1))
done
印刷品

01: 2
02: 3
03: 4
04: 5
05: 6
06: 7
07: 8
sd: 3: sd: Illegal number: 08
有人能解释一下上面的
dash
artihmetic有什么问题吗

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


也将其标记为
bash
,以引起bash专家的更多关注:

问题是在您的
seq
输出中导致
0
,使其成为一个八进制数,而
07
以上的任何内容都是无效的八进制数

请注意,此脚本将正常工作,不会出现错误:

seq 10 | while read -r num; do echo "$num: $((num + 1))"; done

我有点忘记了八进制数-这对于
bash
也是一样的。。。真是个愚蠢的问题——今天过得不好;(