【问题标题】:Strange dash arithmetics奇怪的破折号算术
【发布时间】:2014-12-08 05:23:47
【问题描述】:

具备以下条件:

#!/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 有什么问题?

注意,这是一个 dash(不是 bash)脚本。

也将其标记为bash,以获得更多 bash 专家的关注。 :)

【问题讨论】:

  • 我有点忘记了八进制数字 - bash 也一样......真是愚蠢的问题 - 今天过得很糟糕...... ;(

标签: bash sh dash-shell


【解决方案1】:

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

请注意,此脚本可以正常运行而不会出错:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2014-11-02
    • 2012-10-03
    • 2012-09-12
    • 1970-01-01
    相关资源
    最近更新 更多