如何使用模数运算符在循环时退出 BASH?

Roo*_*eta 4 command-line bash scripts

因此,实际上对于我的任务,当用户输入一个模数余数为 0 的数字时,我需要跳出真正的 while 循环,例如:(25 % 5 = 0 break loop ) 在我下面的尝试中,我哪里出错了?

while true
do
    echo "Please input anything here: "
    read INPUT

    if [ `expr $INPUT % 5` -eq 0 ]; then
        echo "you entered wrong"
    else
        echo "you entered right"
        break
fi
done
Run Code Online (Sandbox Code Playgroud)

Per*_*uck 7

breakelse零件移动到if零件:

#!/bin/bash

while true
do
    echo "Please input anything here: "
    read INPUT

    if [ `expr $INPUT % 5` -eq 0 ]; then
        echo "you entered wrong"
        break
    else
        echo "you entered right"
    fi
done
Run Code Online (Sandbox Code Playgroud)

  • @RooseveltMendieta 这不是你想要的吗?***当用户输入一个模数余数为 0 的数字时,我需要跳出真正的 while 循环***。40%5 也是 0。 (6认同)
  • @Kulfy 我正在考虑在我的脑海中划分而不是模数,多么令人尴尬哈哈是的这个解决方案实际上确实有效并且正是我所需要的。我要睡觉了,我在完成这项任务时已经很晚了。 (2认同)

sud*_*dus 5

根据@steeldriver 的提示,它对我有用,

否则shellscript可以保持不变,

#!/bin/bash

while true
do
    echo "Please input anything here: "
    read INPUT

    if (( INPUT % 5 == 0 )) ; then
        echo "you entered right"
        break
    else
        echo "you entered wrong"
    fi
done
Run Code Online (Sandbox Code Playgroud)

编辑:您已经修改了问题。此答案对应于该问题的先前版本。(我不清楚,如果你想打破循环,什么时候没有余数或有余数。)