How do I exit BASH while loop using modulus operator?Running bash loopWhile loop in ShellCan you help me to understand this explanation of shell quoting?For loop syntax bash scriptExit terminal after running a bash scriptRedirection operator priority in BashDisplay images in a loop using bashMeaning of exit 0, exit 1 and exit 2 in a bash scriptBash - add zero to single digit in while loopRunning a Bash while loop over all similar files

Could the museum Saturn V's be refitted for one more flight?

What is this scratchy sound on the acoustic guitar called?

files created then deleted at every second in tmp directory

What is required to make GPS signals available indoors?

How can a day be of 24 hours?

Can compressed videos be decoded back to their uncompresed original format?

How does a dynamic QR code work?

How to aggregate categorical data in R?

Avoiding the "not like other girls" trope?

Check if a point is right or left of another one in TikZ

Send out email when Apex Queueable fails and test it

When handwriting 黄 (huáng; yellow) is it incorrect to have a disconnected 草 (cǎo; grass) radical on top?

Why was the shrink from 8″ made only to 5.25″ and not smaller (4″ or less)

Car headlights in a world without electricity

Does int main() need a declaration on C++?

Why can't we say "I have been having a dog"?

Is this draw by repetition?

Implication of namely

How to travel to Japan while expressing milk?

How could sorcerers who are able to produce/manipulate almost all forms of energy communicate over large distances?

How to install cross-compiler on Ubuntu 18.04?

Getting extremely large arrows with tikzcd

Rotate ASCII Art by 45 Degrees

How to calculate the right interval for a timelapse on a boat



How do I exit BASH while loop using modulus operator?


Running bash loopWhile loop in ShellCan you help me to understand this explanation of shell quoting?For loop syntax bash scriptExit terminal after running a bash scriptRedirection operator priority in BashDisplay images in a loop using bashMeaning of exit 0, exit 1 and exit 2 in a bash scriptBash - add zero to single digit in while loopRunning a Bash while loop over all similar files













1















So practically for my assignment I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0, ex: (25 % 5 = 0 break loop) Where in my attempt below have I gone wrong?



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









share|improve this question



















  • 1





    If the assignment specifies bash, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))

    – steeldriver
    1 hour ago











  • the loop does not end when entering 25 @steeldriver

    – Roosevelt Mendieta
    1 hour ago















1















So practically for my assignment I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0, ex: (25 % 5 = 0 break loop) Where in my attempt below have I gone wrong?



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









share|improve this question



















  • 1





    If the assignment specifies bash, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))

    – steeldriver
    1 hour ago











  • the loop does not end when entering 25 @steeldriver

    – Roosevelt Mendieta
    1 hour ago













1












1








1








So practically for my assignment I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0, ex: (25 % 5 = 0 break loop) Where in my attempt below have I gone wrong?



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









share|improve this question
















So practically for my assignment I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0, ex: (25 % 5 = 0 break loop) Where in my attempt below have I gone wrong?



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






command-line bash scripts






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago







Roosevelt Mendieta

















asked 2 hours ago









Roosevelt MendietaRoosevelt Mendieta

3415




3415







  • 1





    If the assignment specifies bash, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))

    – steeldriver
    1 hour ago











  • the loop does not end when entering 25 @steeldriver

    – Roosevelt Mendieta
    1 hour ago












  • 1





    If the assignment specifies bash, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))

    – steeldriver
    1 hour ago











  • the loop does not end when entering 25 @steeldriver

    – Roosevelt Mendieta
    1 hour ago







1




1





If the assignment specifies bash, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))

– steeldriver
1 hour ago





If the assignment specifies bash, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))

– steeldriver
1 hour ago













the loop does not end when entering 25 @steeldriver

– Roosevelt Mendieta
1 hour ago





the loop does not end when entering 25 @steeldriver

– Roosevelt Mendieta
1 hour ago










3 Answers
3






active

oldest

votes


















2














Move the break from the else part to the if part:



#!/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





share|improve this answer























  • this doesn't work, when I enter 40 the code exits

    – Roosevelt Mendieta
    1 hour ago






  • 2





    @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

    – Kulfy
    1 hour ago












  • @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

    – Roosevelt Mendieta
    1 hour ago











  • @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

    – Kulfy
    1 hour ago











  • i version controlled the code back to it's original state @Kulfy

    – Roosevelt Mendieta
    1 hour ago


















3














It works for me according to @steeldriver's tips,




  • make sure you use bash



    #!/bin/bash



  • use the bash syntax for arithmetic evaluation



    ((...))


Otherwise the shellscript can remain the same,



#!/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


Edit: You have modified the question. This answer corresponds to a previous version of the question. (It is not clear to me, if you want to break the loop, when there is no remainder or when there is a remainder.)






share|improve this answer
































    2














    Since this is bash script we're talking about, you may want to use read -p and arithmetic evaluation ((...))



    $ while read -p "Enter number:" input ; do (( input%5 == 0 )) && echo "Wrong"; break; || echo "alright"; done
    Enter number:11
    alright
    Enter number:7
    alright
    Enter number:10
    Wrong


    Portably, you might want to use [ aka test



    $ [ $((25%5)) -eq 0 ] && echo "Zero"
    Zero
    $ [ $((26%5)) -eq 0 ] && echo "Zero"
    $





    share|improve this answer

























      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "89"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1130696%2fhow-do-i-exit-bash-while-loop-using-modulus-operator%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      2














      Move the break from the else part to the if part:



      #!/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





      share|improve this answer























      • this doesn't work, when I enter 40 the code exits

        – Roosevelt Mendieta
        1 hour ago






      • 2





        @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

        – Kulfy
        1 hour ago












      • @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

        – Roosevelt Mendieta
        1 hour ago











      • @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

        – Kulfy
        1 hour ago











      • i version controlled the code back to it's original state @Kulfy

        – Roosevelt Mendieta
        1 hour ago















      2














      Move the break from the else part to the if part:



      #!/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





      share|improve this answer























      • this doesn't work, when I enter 40 the code exits

        – Roosevelt Mendieta
        1 hour ago






      • 2





        @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

        – Kulfy
        1 hour ago












      • @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

        – Roosevelt Mendieta
        1 hour ago











      • @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

        – Kulfy
        1 hour ago











      • i version controlled the code back to it's original state @Kulfy

        – Roosevelt Mendieta
        1 hour ago













      2












      2








      2







      Move the break from the else part to the if part:



      #!/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





      share|improve this answer













      Move the break from the else part to the if part:



      #!/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






      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered 2 hours ago









      PerlDuckPerlDuck

      7,89611636




      7,89611636












      • this doesn't work, when I enter 40 the code exits

        – Roosevelt Mendieta
        1 hour ago






      • 2





        @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

        – Kulfy
        1 hour ago












      • @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

        – Roosevelt Mendieta
        1 hour ago











      • @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

        – Kulfy
        1 hour ago











      • i version controlled the code back to it's original state @Kulfy

        – Roosevelt Mendieta
        1 hour ago

















      • this doesn't work, when I enter 40 the code exits

        – Roosevelt Mendieta
        1 hour ago






      • 2





        @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

        – Kulfy
        1 hour ago












      • @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

        – Roosevelt Mendieta
        1 hour ago











      • @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

        – Kulfy
        1 hour ago











      • i version controlled the code back to it's original state @Kulfy

        – Roosevelt Mendieta
        1 hour ago
















      this doesn't work, when I enter 40 the code exits

      – Roosevelt Mendieta
      1 hour ago





      this doesn't work, when I enter 40 the code exits

      – Roosevelt Mendieta
      1 hour ago




      2




      2





      @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

      – Kulfy
      1 hour ago






      @RooseveltMendieta Isn't it what you want? I need to break out of a true while loop when the user inputs a number that gives a modulus remainder of 0. 40%5 is also 0.

      – Kulfy
      1 hour ago














      @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

      – Roosevelt Mendieta
      1 hour ago





      @Kulfy i was thinking of division in my head instead of modulus, how embarrassing lol yes this solution in fact does work and is exactly what I needed. I need to go to sleep i've been up to late working on this assignment.

      – Roosevelt Mendieta
      1 hour ago













      @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

      – Kulfy
      1 hour ago





      @RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.

      – Kulfy
      1 hour ago













      i version controlled the code back to it's original state @Kulfy

      – Roosevelt Mendieta
      1 hour ago





      i version controlled the code back to it's original state @Kulfy

      – Roosevelt Mendieta
      1 hour ago













      3














      It works for me according to @steeldriver's tips,




      • make sure you use bash



        #!/bin/bash



      • use the bash syntax for arithmetic evaluation



        ((...))


      Otherwise the shellscript can remain the same,



      #!/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


      Edit: You have modified the question. This answer corresponds to a previous version of the question. (It is not clear to me, if you want to break the loop, when there is no remainder or when there is a remainder.)






      share|improve this answer





























        3














        It works for me according to @steeldriver's tips,




        • make sure you use bash



          #!/bin/bash



        • use the bash syntax for arithmetic evaluation



          ((...))


        Otherwise the shellscript can remain the same,



        #!/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


        Edit: You have modified the question. This answer corresponds to a previous version of the question. (It is not clear to me, if you want to break the loop, when there is no remainder or when there is a remainder.)






        share|improve this answer



























          3












          3








          3







          It works for me according to @steeldriver's tips,




          • make sure you use bash



            #!/bin/bash



          • use the bash syntax for arithmetic evaluation



            ((...))


          Otherwise the shellscript can remain the same,



          #!/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


          Edit: You have modified the question. This answer corresponds to a previous version of the question. (It is not clear to me, if you want to break the loop, when there is no remainder or when there is a remainder.)






          share|improve this answer















          It works for me according to @steeldriver's tips,




          • make sure you use bash



            #!/bin/bash



          • use the bash syntax for arithmetic evaluation



            ((...))


          Otherwise the shellscript can remain the same,



          #!/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


          Edit: You have modified the question. This answer corresponds to a previous version of the question. (It is not clear to me, if you want to break the loop, when there is no remainder or when there is a remainder.)







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 1 hour ago

























          answered 1 hour ago









          sudodussudodus

          25.6k33078




          25.6k33078





















              2














              Since this is bash script we're talking about, you may want to use read -p and arithmetic evaluation ((...))



              $ while read -p "Enter number:" input ; do (( input%5 == 0 )) && echo "Wrong"; break; || echo "alright"; done
              Enter number:11
              alright
              Enter number:7
              alright
              Enter number:10
              Wrong


              Portably, you might want to use [ aka test



              $ [ $((25%5)) -eq 0 ] && echo "Zero"
              Zero
              $ [ $((26%5)) -eq 0 ] && echo "Zero"
              $





              share|improve this answer





























                2














                Since this is bash script we're talking about, you may want to use read -p and arithmetic evaluation ((...))



                $ while read -p "Enter number:" input ; do (( input%5 == 0 )) && echo "Wrong"; break; || echo "alright"; done
                Enter number:11
                alright
                Enter number:7
                alright
                Enter number:10
                Wrong


                Portably, you might want to use [ aka test



                $ [ $((25%5)) -eq 0 ] && echo "Zero"
                Zero
                $ [ $((26%5)) -eq 0 ] && echo "Zero"
                $





                share|improve this answer



























                  2












                  2








                  2







                  Since this is bash script we're talking about, you may want to use read -p and arithmetic evaluation ((...))



                  $ while read -p "Enter number:" input ; do (( input%5 == 0 )) && echo "Wrong"; break; || echo "alright"; done
                  Enter number:11
                  alright
                  Enter number:7
                  alright
                  Enter number:10
                  Wrong


                  Portably, you might want to use [ aka test



                  $ [ $((25%5)) -eq 0 ] && echo "Zero"
                  Zero
                  $ [ $((26%5)) -eq 0 ] && echo "Zero"
                  $





                  share|improve this answer















                  Since this is bash script we're talking about, you may want to use read -p and arithmetic evaluation ((...))



                  $ while read -p "Enter number:" input ; do (( input%5 == 0 )) && echo "Wrong"; break; || echo "alright"; done
                  Enter number:11
                  alright
                  Enter number:7
                  alright
                  Enter number:10
                  Wrong


                  Portably, you might want to use [ aka test



                  $ [ $((25%5)) -eq 0 ] && echo "Zero"
                  Zero
                  $ [ $((26%5)) -eq 0 ] && echo "Zero"
                  $






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 1 hour ago

























                  answered 1 hour ago









                  Sergiy KolodyazhnyySergiy Kolodyazhnyy

                  74.8k9155325




                  74.8k9155325



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Ask Ubuntu!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1130696%2fhow-do-i-exit-bash-while-loop-using-modulus-operator%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Era Viking Índice Início da Era Viquingue | Cotidiano | Sociedade | Língua | Religião | A arte | As primeiras cidades | As viagens dos viquingues | Viquingues do Oeste e Leste | Fim da Era Viquingue | Fontes históricas | Referências Bibliografia | Ligações externas | Menu de navegação«Sverige då!»«Handel I vikingetid»«O que é Nórdico Antigo»Mito, magia e religião na volsunga saga Um olhar sobre a trajetória mítica do herói sigurd«Bonden var den verklige vikingen»«Vikingatiden»«Vikingatiden»«Vinland»«Guerreiras de Óðinn: As Valkyrjor na Mitologia Viking»1519-9053«Esculpindo símbolos e seres: A arte viking em pedras rúnicas»1679-9313Historia - Tema: VikingarnaAventura e Magia no Mundo das Sagas IslandesasEra Vikinge

                      What's the metal clinking sound at the end of credits in Avengers: Endgame?What makes Thanos so strong in Avengers: Endgame?Who is the character that appears at the end of Endgame?What happens to Mjolnir (Thor's hammer) at the end of Endgame?The People's Ages in Avengers: EndgameWhat did Nebula do in Avengers: Endgame?Messing with time in the Avengers: Endgame climaxAvengers: Endgame timelineWhat are the time-travel rules in Avengers Endgame?Why use this song in Avengers: Endgame Opening Logo Sequence?Peggy's age in Avengers Endgame

                      Are there legal definitions of ethnicities/races? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Legal definitions in the United StatesAre there truly legal limits on US interest rates?Are gender identity and sexual orientation federally protected?Why is there an apparent legal bias against digital services?What limits are there to the powers of individual judges in the United States legal system?Are women only scholarships legal under Irish / EU law?Is the term “race” defined by Public Law enacted by Congress of the United StatesIs there a legal definition of race in the US?Neighbors are spying for landlord on Renters is it legal?Are Protected Classes Bi-directional?