我在最新的Mac OS上进行了一项实验,使用了一个名为"a.sh"的Shell脚本,并且脚本内容如下(完全复制)。
#!/bin/bash
echo $BASH_VERSION
a=0
(( a < 100 || 1 / a < 2 )) && echo ok
我得到了:
3.2.57(1)-release
./a.sh: line 4: ((: a < 100 || 1 / a < 2 : division by 0 (error token is "< 2 ")
既然 a < 100
已经是 true,我认为 1 / a < 2
不会被计算。
有人能帮助我理解一下吗?
||
会进行短路运算;也许它确实不会进行短路运算?(我承认这很令人惊讶。) - ruakh