gpt4 book ai didi

linux - 在 busybox' ash 下进行算术运算时如何将八进制数视为十进制数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:48 24 4
gpt4 key购买 nike

我将十进制数字存储在字符串中。

<100 的数字以这种方式存储 "045""005"

当在 let A="045"+"009" 等算术运算中使用这些数字字符串时,这些数字将被视为八进制数字,如手册页中所示。

为了将它们视为小数,我在这样的数字字符串的开头添加了 10#

let A="10#045"+"10#123"

但是这个解决方案导致错误 -ash: let: arithmetic syntax error in my bash from BusyBox (Installed on OpenWRT)

我的 busybox shell 有其他解决方案吗?

注意:该操作应使用 let 进行评估,因为我需要在其他类型的操作(如按位操作)中使用这些数字。

最佳答案

busybox 没有bash,它的shell是ash

您可以从变量中去除前导零,例如:

while [ "${n:0:1}" = "0" ]; do n="${n#?}"; done

或使用expr:

$ echo $(expr 045 + 045)
90

关于linux - 在 busybox' ash 下进行算术运算时如何将八进制数视为十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522600/

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