我的数字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
感谢您的帮助
答案 0 :(得分:2)
这是因为08
和09
具有前导零并且被解释为八进制数。 08
和09
是无效的八进制数,因此出现此错误。
您可以在((...))
中使用基数10算术来比较2个值:
if (( 10#$datagfs == 10#$datelaptop )); then
...
fi
10#$datagfs
会将08
解释为8