我想测试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
任何见解?
答案 0 :(得分:1)
Shucks,发帖后一分钟找到了答案......正如@David C. Rankin在上面的评论中说的那样,我可以在double中做任何我想做的事((和))。我得到的错误来自上面代码中缺少的其他内容,因为我简化了问题......
无论如何,当你在这里时,提示:算术扩展(以及实际错误的原因......):
如果您要将变量分配给((...))表达式的结果,请使用:
x=$(( (y/10)%2 ));
注意$ above-实际上会输出十进制数而不仅仅是一个返回代码......