我有一个bash脚本,其中包含以下2行:
Hour=$(date +"%H")
Hour=$((10#$Hour))
第2行做什么?
该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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句