我有一个bash脚本,其中包含以下2行:
Hour=$(date +"%H")
Hour=$((10#$Hour))
第2行做什么?
我有一个bash脚本,其中包含以下2行:
Hour=$(date +"%H")
Hour=$((10#$Hour))
第2行做什么?
Answers:
该10#
告诉它使用基地10扩大数量:
前导0的常量被解释为八进制数。前导“ 0x”或“ 0X”表示十六进制。否则,数字采用[base#] n的形式,其中可选的底数是2到64之间的十进制数,代表算术底数,n是该底数中的数字。如果省略了base#,则使用以10为基数。当指定n时,大于9的数字依次由小写字母,大写字母“ @”和“ _”表示。如果base小于或等于36,则小写字母和大写字母可以互换使用,以表示10到35之间的数字。
例子:
基数16:
$ echo $((16#A))
10
基数8:
$ echo $((8#12))
10
基数2:
$ echo $((2#1010))
10
正如steeldriver指出的那样,很可能可以通过date命令来处理任何潜在的前导零,但是对于最新版本的GNU date,使用以下命令可以更轻松地实现: date +%-H
date
)可以使用printf样式-
格式修饰符在源头抑制前导零+%-H