使用" 08"时出错和" 09"

时间:2015-08-12 19:36:30

标签: bash

我的数字08和09有问题。当我得到当月的数字(01..04 ... 09 ...),并且我在if中使用它时,我收到错误数字08和09.如何解决此错误?

错误是     [[:09:对于基数来说价值太大了(错误标记是" 09") 我没有收到其他数字的任何错误。

datelaptop=`date +"%d"`
echo $datelaptop
if [[ $datagfs -eq $datelaptop ]] ; then
#if [[ 09 -eq 09 ]] ; then

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

这是因为0809具有前导零并且被解释为八进制数。 0809是无效的八进制数,因此出现此错误。

您可以在((...))中使用基数10算术来比较2个值:

if (( 10#$datagfs == 10#$datelaptop )); then
...
fi

10#$datagfs会将08解释为8