[英]Modulus function in bash shell script
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'附近的語法錯誤” 。 我的條件陳述中有什么錯誤?
取決於$lenPT
的值的if ... else
是不必要的 ,因為$lenPT
永遠不會在循環內更改。 這些分配是如此相似,以至於if
邏輯可以用算術代替。 例:
n=$((lenPT % 2))
for ((i=0; i<lenPT; i++))
do
P[i]="$((K[n] * arrT[i-n] + K[2+n] * arrT[i+1-n]))"
done
您需要在]]
前加一個空格。
if [[ $(($lenPT % 2)) == 0 ]]; then
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.