shell脚本中的比较与除法总是给出错误

时间:2011-10-27 14:44:48

标签: bash shell

我在shell bash脚本中编写了一个非常简单的比较,但我从来没有弄清楚:

count = 0

if [ expr $count / 4 = 0 ];
then
  echo "yes";
else
  echo "no";
fi

总是不给?

3 个答案:

答案 0 :(得分:5)

如果您想呼叫expr程序,您必须实际呼叫它:

if [ $(expr $count / 4) = 0 ]; then echo "yes"; else echo "no"; fi

但是,bash可以在内部完成:

if (( $count / 4 == 0 )); then echo "yes"; else echo "no"; fi

答案 1 :(得分:3)

您需要使用command substitution$()或反引号)来评估eval表达式。另外,对integer comparison使用-eq

if [ $(expr $count / 4) -eq 0 ];
then
  echo "yes";
else
  echo "no";
fi

答案 2 :(得分:0)

这个怎么样

[[ count/4 -eq 0 ]] && echo 'yes' || echo 'no'