Bash算术表达式((在复合语句中[[返回true?

时间:2013-03-11 16:46:39

标签: linux bash shell math expression

简单的算术表达式括在'(('在复合条件表达式'[['

中)时计算结果为true)
HAVE_SRC=1
[[ (( $HAVE_SRC == 1 )) && -d $( pwd ) ]]
echo $? # returns 0 => true

HAVE_SRC=0
[[ (( $HAVE_SRC == 1 )) && -d $( pwd ) ]]
echo $? # returns 1 => false

HAVE_SRC=1
[[ (( $HAVE_SRC )) && -d $( pwd ) ]]
echo $? # returns 0 => true

问题:

HAVE_SRC=0
[[ (( $HAVE_SRC )) && -d $( pwd ) ]]
echo $? # returns 0 => true ????

1 个答案:

答案 0 :(得分:4)

请勿在{{1​​}}内使用(( ... ))

[[ ... ]]

要了解bash如何解释您提供的表达式,请尝试使用

运行它们
(( HAVE_SRC == 1 )) && [[ -d $pwd ]]