複数の算術条件を持つスクリプトが失敗する

複数の算術条件を持つスクリプトが失敗する

数値をバイトに変換するスクリプトに問題があります。

  • 数値がギガバイトまたはテラバイト単位で十分に大きい場合、スクリプトは期待どおりに実行されます。
  • 数値がキロバイトに変換されると、スクリプトを実行し、数値をキロバイト単位で表示し、エラーメッセージを送信します。
  • メガバイト間隔の場合、エラーメッセージが送信されます。
行 n ((: x > 1048576: 構文エラー: 無効な算術演算子 ("" で示されるエラー)。 x は、私が入力した数値を表します。)
tb=1099511627776
gb=1073741824
mb=1048576
kb=1024
read number
if (( $number > $tb )); then
  echo "$(( number / tb )) terabytes"

elif (( $number > $gb )) && (( $number < $tb )); then
  echo "$(( number > gb )) gigabytes"

elif (( $number > $mb )) && (( $number < $gb )); then
  echo "$(( number > mb )) megabytes"

elif (( $number > $kb )) && (( $number < $mb )); then
  echo "$(( number > mb )) kilobytes"

fi

行がn途中にありますelif

ベストアンサー1

この行にエラーがあります: echo "$(( number > gb ) gigabytes"欠落)。

その行は次のようになります。 echo "$(( number > gb )) gigabytes"

おすすめ記事