value too great for base

有个这样的脚本:

declare -a dic
dic=(
["0001"]="0"
["0002"]="1"
["0003"]="2"
["0004"]="3"
["0005"]="4"
["0006"]="5"
["0007"]="6"
["0008"]="7" # 报错 value too great for base
["0011"]="8" 
["0012"]="9"
["0014"]="10"
)
key=${host:17:4}  # 10
id=${dic[$key]}  # 

错误类型:
进制问题:
0开头的被默认为八进制了,所以08就是无效的八进制数!太奇葩了!!
加个 10#。bash真是够了,明明是字符串,却给你转成数字,谁写的语言,
站粗来!

改为:

declare -a dic
dic=(
["10#0001"]="0"
["10#0002"]="1"
["10#0003"]="2"
["10#0004"]="3"
["10#0005"]="4"
["10#0006"]="5"
["10#0007"]="6"
["10#0008"]="7"
["10#0011"]="8"
["10#0012"]="9"
["10#0014"]="10"
)
key=${host:17:4}
id=${dic[10#$key]}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,738评论 9 468
  • 官网原文:本章原文 建议打开原版对照着英文版同时阅读。官网原文:在git上阅读 建议打开原版对照着英文版同时阅读。...
    阿龙学区块链阅读 1,128评论 0 2
  • 在雨中奔跑 以大地的眼泪 去冲刷灵魂 只想 取一颗红豆 换你的南国
    色十光五阅读 197评论 0 1
  • 很快就要毕业,回首大学三年,只有认真努力的日子才印象深刻。 大一大二庸庸碌碌,不知道怎么在忙什么,也没怎么想过要去...
    AlisonXu阅读 337评论 0 0
  • 一日,由公车下,看表,时间仍早不想回家。抬头就看见明亮路灯后那片隐藏着的深邃夜空,耳机里还响着高分贝的女声,游离了...
    七念堂陈七七阅读 348评论 0 2