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
Run Code Online (Sandbox Code Playgroud)
我收到错误消息,说“条件表达式中的语法错误”和“'then' 附近的语法错误”。我的条件语句有什么错误?
空间很重要,请参阅Barmar 的回答。[[ ]]如果你想放在then同一行,你还需要在条件后加一个分号。
代替繁琐的[[ $(( )) ... ]]组合,您可以使用(( ))条件,其内容在算术上下文中进行评估:
if (( lenPT % 2 == 0 )); then
Run Code Online (Sandbox Code Playgroud)
你甚至不需要$lenPT在这个构造中,lenPT就足够了(详见手册中的条件构造)。