この増加するforループが誤った変数を返すのはなぜですか?

この増加するforループが誤った変数を返すのはなぜですか?

GRASS GISのCLIからこのシェルスクリプトを呼び出そうとしています。

for (( day=5; day<367; day+5 )); do
  # commands that I've tested without a loop.
done
exit 0

返品

Syntax error: Bad for loop variable

ベストアンサー1

このエラーメッセージのソースは次のとおりです。禁煙健康増進協会。同様の構文を持ついくつかのシェルがあります。 Ashは、小さなメモリスペースと高速実行のために設計された比較的基本的なデザインです。もう一つの一般的な殻は吹く。 Bashにはより多くの機能があります。公開した構文はbash(および他のいくつかのシェル(ashは除く))にのみ存在します。

灰には次のように書く必要があります。

day=5
while [ $day -lt 367 ]; do
  day=$((day + 5))
done

Linuxディストリビューションに応じて、/bin/shこれはashまたはbashです(一部のエキゾチックバージョンでは他の実装を使用できます)。 bash構文を使用してスクリプトを作成する場合は、その構文を#!/bin/bash一番上に配置してください。

あなたがそれを書いたところを意味すると仮定すれば、そうでなければ無限ループです。day+=5day+5

おすすめ記事