bash中复合算术表达式是否可行?

时间:2015-06-25 00:55:24

标签: bash math expression

我想测试if(x / 10)%2 == 1.但是当我这样做时我会遇到错误:

if (( (x/10)%2 )); then
  #blah
else
  #blah
fi

有可能吗?或者我应该做一些类似的事情:

y=((x/10))
z=((y%2))
if [[ z -eq 1 ]]; then
  #blah blah blah

任何见解?

1 个答案:

答案 0 :(得分:1)

Shucks,发帖后一分钟找到了答案......正如@David C. Rankin在上面的评论中说的那样,我可以在double中做任何我想做的事((和))。我得到的错误来自上面代码中缺少的其他内容,因为我简化了问题......

无论如何,当你在这里时,提示:算术扩展(以及实际错误的原因......):

如果您要将变量分配给((...))表达式的结果,请使用:

x=$(( (y/10)%2 ));

注意$ above-实际上会输出十进制数而不仅仅是一个返回代码......