gpt4 book ai didi

linux - shell 脚本 : value too great for base (error token is "16#?")

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

我是 shell 脚本的新手。我正在使用十六进制值并编写一个简单的减法脚本。这是我的脚本:

#!/bin/bash

var1=“0x0001”
var2=“0x0005”
var3=“$(( 16#$var2 - 16#$var1 ))”
echo “Diference $var3”

我收到这个错误:

line 6: 16#?: value too great for base (error token is "16#?")

你能告诉我我的错误在哪里吗?

最佳答案

$ var1=0x0001
$ var2=0x0005
$ var3=$(( $var2 - $var1 ))
$ echo "Diference $var3"
Diference 4

分配不带双引号的十六进制值(即不是字符串)。
由于您已经放置了 0x,因此不需要 16#

要将答案转换回十六进制,您可以使用:

printf '%x' $num

这是一个例子:

$ var1=0x19
$ var2=0xA
$ var3=$(( $var1 - $var2 ))
$ echo $var3
15
$ printf '%x\n' $var3
f
$ var3=$(printf '%x' $var3)
$ echo $var3
f

关于linux - shell 脚本 : value too great for base (error token is "16#?"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406245/

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