for ((i=0; i<lenPT; i++)) do
if [[ $(($lenPT % 2)) == 0]] then
P[i] = "$((K [0] * arrT[i] + K[2] * arrT[i+1]))"
else
P[i] = "$((K[1]*arrT[i-1]+K[3]*arrT[i]))"
fi
done
我收到错误消息,指出“条件表达式中的语法错误”和“'then'附近的语法错误”。我的条件陈述中有什么错误?
最佳答案
空间很重要,请参阅Barmar's answer。如果要将[[ ]]
放在同一行上,则还需要在then
之后加上分号。
您可以使用条件条件下的[[ $(( )) ... ]]
代替繁琐的(( ))
组合,其条件是在算术上下文中求值的:
if (( lenPT % 2 == 0 )); then
您甚至不需要在此结构中使用
$lenPT
,lenPT
就足够了(有关详细信息,请参见手册中的Conditional Constructs)。