Bash:条件中的var null

时间:2014-07-17 08:43:16

标签: bash var

以下是示例:

$ credits="29" ; echo "C=$credits" ; initial="1064" ; echo "C=$credits" ; limit=`expr $initial / 10` ; echo "C=$credits" ; if [ "$credits" -le "$limit" ] && [ ! "$initial" -eq "50" ] ; echo "C=$credits" ; then echo "C=$credtis" ; fi ; echo "C=$credits" ; echo "I=$initial"
C=29
C=29
C=29
C=29
C=
C=29
I=1064

$ c="29" ; echo "C=$c" ; initial="1064" ; echo "C=$c" ; limit=`expr $initial / 10` ; echo "C=$c" ; if [ "$c" -le "$limit" ] && [ ! "$initial" -eq "50" ] ; echo "C=$c" ; then echo "C=$c" ; fi ; echo "C=$c" ; echo "I=$initial"
C=29
C=29
C=29
C=29
C=29
C=29
I=1064

当var名称为" c"时,一切正常,但是当它"信用"时,我无法在if条件中使用var内容。 不明白为什么......

1 个答案:

答案 0 :(得分:0)

如果两行代码中都有表达式,则表示问题格式不正确。具体来说,第一行在echo "C=$credits" ;if的结尾之间包含不正确的then

if [ "$credits" -le "$limit" ] && [ ! "$initial" -eq "50" ] ; echo "C=$credits" ; then

应该是:

if [ "$credits" -le "$limit" ] && [ ! "$initial" -eq "50" ] ; then
    echo "C=$credtis"
fi

这里重复同样的错误:

if [ "$credits" -le "$limit" ] && [ ! "$initial" -eq "50" ] ; echo "C=$credits" ; then

应该是

if [ "$credits" -le "$limit" ] && [ ! "$initial" -eq "50" ] ; then
    echo "C=$credtis"
fi