我将把两个数字作为字符串检索到变量 A 和 B 中:
A 将采用以下形式:
“10”或“0x0A”或“0x0a”
换句话说,A 将是十进制或十六进制数(带有 0x 前缀)。
B 将采用以下形式:
“image-000A”或“image-000a”
B 将始终是“image-”,后跟 4 个十六进制数字。
我需要比较两个数值并测试 B > A。如何在 shell 脚本中执行此操作?
我将把两个数字作为字符串检索到变量 A 和 B 中:
A 将采用以下形式:
“10”或“0x0A”或“0x0a”
换句话说,A 将是十进制或十六进制数(带有 0x 前缀)。
B 将采用以下形式:
“image-000A”或“image-000a”
B 将始终是“image-”,后跟 4 个十六进制数字。
我需要比较两个数值并测试 B > A。如何在 shell 脚本中执行此操作?
只需将十六进制数乘以 1,即可将其转换为十进制数。
rojo@pico:~$ t=0x0a
rojo@pico:~$ echo $t
0x0a
rojo@pico:~$ echo $(( $t * 1 ))
10
从图像中提取十六进制值稍微复杂一些,但仍以相同的方式工作。
rojo@pico:~$ t=image-000a
rojo@pico:~$ echo $t
image-000a
rojo@pico:~$ echo $(( 0x${t##image-} * 1 ))
10
${t##image-}
脱衣舞image-
,$t
离开000a
。_