((num#Hour)) 在 bash 脚本中意味着什么?

((num#Hour)) 在 bash 脚本中意味着什么?

我有一个包含以下两行的 bash 脚本:

Hour=$(date +"%H")
Hour=$((10#$Hour))

2号线是做什么的?

答案1

告诉它10#使用基数 10 扩展数字:

以 0 开头的常量被解释为八进制数。前导“0x”或“0X”表示十六进制。否则,数字采用 [base#]n 形式,其中可选基数是表示算术基数的 2 到 64 之间的十进制数,n 是该基数中的数字。如果省略 base#,则使用基数 10。指定 n 时,大于 9 的数字按小写字母、大写字母、“@”和“_”的顺序表示。如果底数小于或等于 36,则小写和大写字母可以互换使用来表示 10 到 35 之间的数字。

例子:

基地 16:

$ echo $((16#A))
10

基地8:

$ echo $((8#12))
10

基地2:

$ echo $((2#1010))
10

正如 Steeldriver 指出的那样,这样做可能是为了处理 date 命令中任何潜在的前导零,但使用最新版本的 GNU date 可以更轻松地使用: date +%-H

相关内容