在 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 代码...
我想测试是否 (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 代码...