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
OP Amp not amplifying audio signal
Unlock My Phone! February 2018
Knowledge-based authentication using Domain-driven Design in C#
Bullying boss launched a smear campaign and made me unemployable
What is an equivalently powerful replacement spell for Yuan-Ti's Suggestion spell?
Should I tell management that I intend to leave due to bad software development practices?
Avoiding the "not like other girls" trope?
In Bayesian inference, why are some terms dropped from the posterior predictive?
Forgetting the musical notes while performing in concert
What historical events would have to change in order to make 19th century "steampunk" technology possible?
How could sorcerers who are able to produce/manipulate almost all forms of energy communicate over large distances?
What Exploit Are These User Agents Trying to Use?
Machine learning testing data
What exactly is ineptocracy?
Sums of two squares in arithmetic progressions
What is the fastest integer factorization to break RSA?
GFCI outlets - can they be repaired? Are they really needed at the end of a circuit?
Can a virus destroy the BIOS of a modern computer?
What is the most common color to indicate the input-field is disabled?
How can I prove that a state of equilibrium is unstable?
How can a day be of 24 hours?
Placement of More Information/Help Icon button for Radio Buttons
Is it a bad idea to plug the other end of ESD strap to wall ground?
What reasons are there for a Capitalist to oppose a 100% inheritance tax?
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
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
add a comment |
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
2
If the assignment specifiesbash
, then you might consider using its built-in arithmetic expansion syntax e.g.(( INPUT % 5 == 0 ))
– steeldriver
3 hours ago
the loop does not end when entering 25 @steeldriver
– Roosevelt Mendieta
3 hours ago
add a comment |
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
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
command-line bash scripts
edited 3 hours ago
Roosevelt Mendieta
asked 4 hours ago
Roosevelt MendietaRoosevelt Mendieta
3915
3915
2
If the assignment specifiesbash
, then you might consider using its built-in arithmetic expansion syntax e.g.(( INPUT % 5 == 0 ))
– steeldriver
3 hours ago
the loop does not end when entering 25 @steeldriver
– Roosevelt Mendieta
3 hours ago
add a comment |
2
If the assignment specifiesbash
, then you might consider using its built-in arithmetic expansion syntax e.g.(( INPUT % 5 == 0 ))
– steeldriver
3 hours ago
the loop does not end when entering 25 @steeldriver
– Roosevelt Mendieta
3 hours ago
2
2
If the assignment specifies
bash
, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))
– steeldriver
3 hours ago
If the assignment specifies
bash
, then you might consider using its built-in arithmetic expansion syntax e.g. (( INPUT % 5 == 0 ))
– steeldriver
3 hours ago
the loop does not end when entering 25 @steeldriver
– Roosevelt Mendieta
3 hours ago
the loop does not end when entering 25 @steeldriver
– Roosevelt Mendieta
3 hours ago
add a comment |
3 Answers
3
active
oldest
votes
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
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours 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
3 hours 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
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
add a comment |
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.)
add a comment |
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"
$
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours 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
3 hours 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
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
add a comment |
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
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours 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
3 hours 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
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
add a comment |
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
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
answered 4 hours ago
PerlDuckPerlDuck
7,90611636
7,90611636
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours 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
3 hours 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
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
add a comment |
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours 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
3 hours 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
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours ago
this doesn't work, when I enter 40 the code exits
– Roosevelt Mendieta
3 hours 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
3 hours 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
3 hours 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
3 hours 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
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
@RooseveltMendieta It seems that you changed the original code in your question. So, PerlDuck might need to modify explanation of the answer.
– Kulfy
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
i version controlled the code back to it's original state @Kulfy
– Roosevelt Mendieta
3 hours ago
add a comment |
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.)
add a comment |
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.)
add a comment |
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.)
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.)
edited 3 hours ago
answered 3 hours ago
sudodussudodus
25.6k33078
25.6k33078
add a comment |
add a comment |
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"
$
add a comment |
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"
$
add a comment |
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"
$
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"
$
edited 3 hours ago
answered 3 hours ago
Sergiy KolodyazhnyySergiy Kolodyazhnyy
74.8k9155325
74.8k9155325
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
2
If the assignment specifies
bash
, then you might consider using its built-in arithmetic expansion syntax e.g.(( INPUT % 5 == 0 ))
– steeldriver
3 hours ago
the loop does not end when entering 25 @steeldriver
– Roosevelt Mendieta
3 hours ago