gpt4 book ai didi

Bash 算术 $number != $((number))

转载 作者:行者123 更新时间:2023-11-29 09:00:40 34 4
gpt4 key购买 nike

当尝试执行一个简单的 bash 脚本以将前面带有 0 的数字递增 1 时,原始数字被错误地解释。

#!/bin/bash
number=0026
echo $number
echo $((number))
echo $((number+1))

执行此命令时,我得到输出:

0026
22
23

为什么会出现这种情况?

最佳答案

强制以 10 进制表示:

$ echo $((10#$number))
26
$ echo $((10#$number + 1))
27

回应小次郎的评论:

$ something=08
$ echo $((something))
bash: 08: value too great for base (error token is "08")
$ echo $(($something))
bash: 08: value too great for base (error token is "08")
$ echo $((10#something))
bash: 10#something: value too great for base (error token is "10#something")
$ echo $((10#$something))
8
$ echo $((08))
bash: 08: value too great for base (error token is "08")
$ echo $((10#08))
8

$ echo $(( 16#10 ))
16
$ echo $(( 16#f ))
15
$ echo $(( 16#10 - 1 ))
15

关于Bash 算术 $number != $((number)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991204/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com