在 bash 中可以使用复合算术表达式吗?

Are compound arithmetic expressions possible in bash?

我想测试是否 (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

有什么见解吗?

Shucks,发布后一分钟就找到了答案......正如@David C. Rankin 在上面的评论中所说,我 可以 在 double ((和 ))。我得到的错误来自上面代码中缺少的其他内容,因为我针对问题简化了它...

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

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

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

注意上面的 $- 它实际上会输出十进制数,而不仅仅是 return 代码...