我对以下代码段感到困惑:
Object
以上代码段中的#!/bin/bash
H=$(date +%H);
if (( 10#$H > 5 ))
then
# do something
else
# do something else
fi
是什么意思?
答案 0 :(得分:11)
10#$H
表示以10为底扩展数字。
由于bash会解释以8为底的数字(八进制),因此这样做可能是为了删除日期中的前导零。
示例:
$ echo "$(( 08 < 5 ))"
bash: 08: value too great for base (error token is "08")
算术评估:带有前导
0
的常量被解释为八进制数。前导0x
或0X
表示十六进制。否则,数字采用[base#]n
的形式,其中base
是介于2
和64
之间的十进制数字,表示 算术基和n
是该base
中的数字。如果省略base#
,则使用基数10
。大于9
的数字依次由小写字母,大写字母@
和_
表示。如果base
小于或等于36
,则小写字母和大写字母可以互换使用,以表示10到35之间的数字。来源:
man bash