1

我将把两个数字作为字符串检索到变量 A 和 B 中:

A 将采用以下形式:

“10”或“0x0A”或“0x0a”

换句话说,A 将是十进制或十六进制数(带有 0x 前缀)。

B 将采用以下形式:

“image-000A”或“image-000a”

B 将始终是“image-”,后跟 4 个十六进制数字。

我需要比较两个数值并测试 B > A。如何在 shell 脚本中执行此操作?

4

1 回答 1

2

只需将十六进制数乘以 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。_

于 2013-02-20T18:42:12.523 回答