当我在shell中输入->
$echo $(( 16#FF ))
输出是 "255",这是十六进制数 "0xFF "的十进制转换。
但当我试图将数字 "FF "转换为另一个类似的基数时。
$ echo $(( ffb5cd10#FF ))
我得到了以下错误:
"bash: ffb5cd10#FF : syntax error: invalid arithmetic operator (error token is "#FF ")"
所以这个命令的正确语法是$echo $ (('base'#number)) 其中base实际上是你给shell的数字的基数,它会给你十进制转换。这里,FF是数字,16是基数,FF转换为255。
我想你的问题就出在这里。
"(错误标记是 "#FF")"
你输入一个十六进制格式的数字,然后再要求返回一个十六进制。
如果你把代码中的基数去掉,那么sintax可以返回预期的结果,就像这样。
$ echo $(( ( ffb5cd10# ))