計算プログラムが算術テストに失敗する

計算プログラムが算術テストに失敗する

この非常に基本的なスクリプトには問題があります。このスクリプトは私のMacbook ProではBashで動作しますが、Bashも使用しているLinux Mintデスクトップでは動作しません。

私はそれが間違っていることを理解していません。

bash でエラーメッセージが表示されます。

line 6: [: -lt: unary operator expected
line 16: [: -gt: unary operator expected

次の更新されたコードを使用してください。

#!/bin/bash
clear
counter=0

function countup {
while [ $counter -lt 500 ]
do
  ((counter++))
  echo $counter
  sleep 0.2
done
countdown
}

function countdown {
while [ $counter -gt 0 ]
do
  ((counter--))
  echo $counter
  sleep 0.2
done
countup
}

countup

答え1

この試み:

#!/bin/bash
clear
counter=0

function countup {
    while [[ $counter -lt 500 ]]; do
        ((counter++))
        echo $counter
        sleep 0.2
    done

    countdown
}

function countdown {
    while [[ $counter -gt 0 ]]; do
        ((counter--))
        echo $counter
        sleep 0.2
    done

    countup
}

countup

[[ ]]割り当てられていない変数に対してより強力です。ただし、スクリプトは実行されます。ここに入力した内容がパソコンに入力した内容と異なるようです。これも永遠にカウントアップしてダウンしているように見えますが、意図的なようです。

関連情報