正しい結果を生成する正しい表現は何ですか? [閉鎖]

正しい結果を生成する正しい表現は何ですか? [閉鎖]

スクリプトはCSVファイルをインポートし、繰り返してMD配列を作成します。次に、3番目の列を取得し、各変数を比較して64より大きいことを確認します。数値64を使用すると機能しますが、MAX_AGEという宣言された定数を使用すると機能しません。

以下は、-gt MAX_AGEを使用したスクリプトイメージです。 宣言された定数MAX_AGEを持つスクリプト

以下は上記のスクリプトを使用したエラーです。 ここに画像の説明を入力してください。

私は答えがおそらく簡単であることを知っています...

ベストアンサー1

-gt文字列以外の数値を比較するために使用されます。したがって、次のものを交換する必要があります。

[ ${ages[i]} -gt MAX_AGE ]

そして:

[ ${ages[i]} -gt $MAX_AGE ]

その理由は、これがMAX_AGE文字列だからです。数値としては使用できません。

$MAX_AGE変数の値ですMAX_AGE。値が整数として解釈できる限り、これを数値と比較できます。

使用時に最良の結果を得るには、[...]変数を二重引用符で囲む必要があります。

[ "${ages[i]}" -gt "$MAX_AGE" ]

おすすめ記事