私は0から10の間の数字をタイプするようになっているはずのwhileループをセットアップし、その入力に基づいてさまざまな応答を与えます。しかし、プログラムを実行するときに、0,5、または10が入力されていなければ、一度表示するのではなく、以下の応答の1つを無限ループします。彼らは(入力MOD 5 = 0)、0、5、または10を入力するまで真のループ要求が無限にループしている間に
INPUTMOD=0
echo "Please enter a number from 0-10, inclusive"
read INPUTMOD
while true
do
if [ "$INPUTMOD" -lt 0 ] || [ "$INPUTMOD" -gt 10 ]; then
echo "Please enter a number between 0 and 10, inclusive"
elif [ "$INPUTMOD" -eq 0 ] || [ "$INPUTMOD" -eq 5 ] || [ "$INPUTMOD" -eq 10 ]; then
echo "Your input is congruent with _ mod 5 = 0. Congratulations!"
break
else
echo "Please enter a number between 0 and 10, inclusive."
fi
done
このループの全体的な目的は、連続的に0と10の間の数をユーザに促すことです。非数字キーが押されると、ユーザーに無限に正しい数字を入力するよう促す。
これに関するすべてのヘルプは非常に高く評価されています!
EDIT:私の教授の指導のとおり、while、else、lt、およびgtがすべて必要です。
サイドノートを待ちます。これはあなたがおそらく計算するように要求された学習の割り当てのようだとして一致するオプションを列挙するのではなく、モジュロです。 – RuDevel
0より小さい数と10より大きい数がないので、最初の条件は決して発生しません。 –
この特定の質問は、「真のループ要求を使用すると、-ltコマンドと-gt比較コマンドを使用して入力mod 5 = 0で終了するまで、データを受け入れて表示します。私はmod 5 = 0であるかどうかを調べる数値を入力すると解釈し、trueの場合はループを破棄し、falseの場合は継続的にプロンプトを表示します。私はまだシェルには比較的新しいので、実際にこの全体の質問を間違っていますか? – Ibrahim