我想做这样的事情:
if [ $1 % 4 == 0 ]; then ...
但这不工作。我需要做什么?
谢谢
read n if ! ((n % 4)); then echo "$n divisible by 4." fi
(())运算符将表达式计算为C运算,并具有布尔返回。
因此,((0))为假,并且((1))为真。 [1]
$(())运算符还扩展C算术表达式,但是不返回true / false,而是返回值。因为这样你可以测试输出如果$(())在这种方式:[2]
[[ $(( n % 4 )) == 0 ]]
但这是等于:if(function()== false)。因此,更简单和更惯用的测试是:
! (( n % 4 ))
[1]:现代bash处理数字,直到你的机器的intmax_t大小。
[2]:请注意,你可以放弃$()内,因为它解引用内的变量。