Bash - Execute two commands and get exit status 1 if first failsSimultaneously check for empty output and successful exit statusIs the exit status of a command implemented by the command or a shell process which executes the command?Why do I get different exit status for ps | grep in a script?How to get exit status of a background process?How to get exit status of a particular command in a pipeline?Get PID and return code from 1 line bash callLog the output of ssh shell and preserve the exit statusHow to get the exit code of commands started by find?Why exit status of command “ls” is difference between bash and csh shell?Exit status of chained commands
Vehemently against code formatting
Was murdering a slave illegal in American slavery, and if so, what punishments were given for it?
Why were early aviators' trousers flared at the thigh?
How come Arya Stark wasn't hurt by this in Game of Thrones Season 8 Episode 5?
Why did Nick Fury not hesitate in blowing up the plane he thought was carrying a nuke?
Is it possible to view all the attribute data in QGIS
Why could the Lunar Ascent Engine be used only once?
Chain rule instead of product rule
How to safely discharge oneself
Managing heat dissipation in a magic wand
Have the writers and actors of Game Of Thrones responded to its poor reception?
What does this 'x' mean on the stem of the voice's note, above the notehead?
Why is python script running in background consuming 100 % CPU?
Find the 3D region containing the origin bounded by given planes
How do you play the middle D and F in this passage?
What does it mean for a program to be 32 or 64 bit?
How can I stop my kitten from growing?
How does the probability of events change if an event does not occur
Addressing an email
Warped chessboard
How was the blinking terminal cursor invented?
What should I wear to go and sign an employment contract?
Who is frowning in the sentence "Daisy looked at Tom frowning"?
Does a windmilling propeller create more drag than a stopped propeller in an engine out scenario
Bash - Execute two commands and get exit status 1 if first fails
Simultaneously check for empty output and successful exit statusIs the exit status of a command implemented by the command or a shell process which executes the command?Why do I get different exit status for ps | grep in a script?How to get exit status of a background process?How to get exit status of a particular command in a pipeline?Get PID and return code from 1 line bash callLog the output of ssh shell and preserve the exit statusHow to get the exit code of commands started by find?Why exit status of command “ls” is difference between bash and csh shell?Exit status of chained commands
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
In the case below, the report command must always be executed but I need to get an exit status 1 if the test command fails:
test;report
echo $?
0
How can I do it in a single bash line without creating a shell script?
bash exit-status
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
In the case below, the report command must always be executed but I need to get an exit status 1 if the test command fails:
test;report
echo $?
0
How can I do it in a single bash line without creating a shell script?
bash exit-status
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
In the case below, the report command must always be executed but I need to get an exit status 1 if the test command fails:
test;report
echo $?
0
How can I do it in a single bash line without creating a shell script?
bash exit-status
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
In the case below, the report command must always be executed but I need to get an exit status 1 if the test command fails:
test;report
echo $?
0
How can I do it in a single bash line without creating a shell script?
bash exit-status
bash exit-status
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited 2 hours ago
Jeff Schaller♦
45.8k1165150
45.8k1165150
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 3 hours ago
EduardoEduardo
1062
1062
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Eduardo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
What is a shell script except a file containing shell commands? You could pretend it's not a shell script and put it on one line with something like:
(test; r=$?; report; [ "$r" -gt 0 ] && exit 1; exit 0)
This exits the subshell with a 1 if the first command returned anything other than 0; otherwise, it returns 0.
For examples -- I'm just echoing something in lieu of running a real program:
$ (false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
1
$ (true; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
0
$ # example with an exit-status of 2:
$ (grep foo bar; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
grep: bar: No such file or directory
report
$ echo $?
1
If you regularly set the errexit shell option, you'd want to add in an override so that the subshell doesn't exit prematurely:
(set +o errexit; false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
add a comment |
Save and reuse $?.
test; ret=$?; report; exit $ret
If you have multiple test commands and you want to run them all, but keep track of whether one has failed, you can use bash's ERR trap.
failures=0
trap 'failures=$((failures+1))' ERR
test1
test2
if ((failures == 0)); then
echo "Success"
else
echo "$failures failures"
exit 1
fi
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
);
);
Eduardo is a new contributor. Be nice, and check out our Code of Conduct.
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%2funix.stackexchange.com%2fquestions%2f519567%2fbash-execute-two-commands-and-get-exit-status-1-if-first-fails%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
What is a shell script except a file containing shell commands? You could pretend it's not a shell script and put it on one line with something like:
(test; r=$?; report; [ "$r" -gt 0 ] && exit 1; exit 0)
This exits the subshell with a 1 if the first command returned anything other than 0; otherwise, it returns 0.
For examples -- I'm just echoing something in lieu of running a real program:
$ (false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
1
$ (true; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
0
$ # example with an exit-status of 2:
$ (grep foo bar; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
grep: bar: No such file or directory
report
$ echo $?
1
If you regularly set the errexit shell option, you'd want to add in an override so that the subshell doesn't exit prematurely:
(set +o errexit; false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
add a comment |
What is a shell script except a file containing shell commands? You could pretend it's not a shell script and put it on one line with something like:
(test; r=$?; report; [ "$r" -gt 0 ] && exit 1; exit 0)
This exits the subshell with a 1 if the first command returned anything other than 0; otherwise, it returns 0.
For examples -- I'm just echoing something in lieu of running a real program:
$ (false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
1
$ (true; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
0
$ # example with an exit-status of 2:
$ (grep foo bar; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
grep: bar: No such file or directory
report
$ echo $?
1
If you regularly set the errexit shell option, you'd want to add in an override so that the subshell doesn't exit prematurely:
(set +o errexit; false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
add a comment |
What is a shell script except a file containing shell commands? You could pretend it's not a shell script and put it on one line with something like:
(test; r=$?; report; [ "$r" -gt 0 ] && exit 1; exit 0)
This exits the subshell with a 1 if the first command returned anything other than 0; otherwise, it returns 0.
For examples -- I'm just echoing something in lieu of running a real program:
$ (false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
1
$ (true; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
0
$ # example with an exit-status of 2:
$ (grep foo bar; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
grep: bar: No such file or directory
report
$ echo $?
1
If you regularly set the errexit shell option, you'd want to add in an override so that the subshell doesn't exit prematurely:
(set +o errexit; false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
What is a shell script except a file containing shell commands? You could pretend it's not a shell script and put it on one line with something like:
(test; r=$?; report; [ "$r" -gt 0 ] && exit 1; exit 0)
This exits the subshell with a 1 if the first command returned anything other than 0; otherwise, it returns 0.
For examples -- I'm just echoing something in lieu of running a real program:
$ (false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
1
$ (true; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
report
$ echo $?
0
$ # example with an exit-status of 2:
$ (grep foo bar; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
grep: bar: No such file or directory
report
$ echo $?
1
If you regularly set the errexit shell option, you'd want to add in an override so that the subshell doesn't exit prematurely:
(set +o errexit; false; r=$?; echo report; [ "$r" -gt 0 ] && exit 1; exit 0)
answered 2 hours ago
Jeff Schaller♦Jeff Schaller
45.8k1165150
45.8k1165150
add a comment |
add a comment |
Save and reuse $?.
test; ret=$?; report; exit $ret
If you have multiple test commands and you want to run them all, but keep track of whether one has failed, you can use bash's ERR trap.
failures=0
trap 'failures=$((failures+1))' ERR
test1
test2
if ((failures == 0)); then
echo "Success"
else
echo "$failures failures"
exit 1
fi
add a comment |
Save and reuse $?.
test; ret=$?; report; exit $ret
If you have multiple test commands and you want to run them all, but keep track of whether one has failed, you can use bash's ERR trap.
failures=0
trap 'failures=$((failures+1))' ERR
test1
test2
if ((failures == 0)); then
echo "Success"
else
echo "$failures failures"
exit 1
fi
add a comment |
Save and reuse $?.
test; ret=$?; report; exit $ret
If you have multiple test commands and you want to run them all, but keep track of whether one has failed, you can use bash's ERR trap.
failures=0
trap 'failures=$((failures+1))' ERR
test1
test2
if ((failures == 0)); then
echo "Success"
else
echo "$failures failures"
exit 1
fi
Save and reuse $?.
test; ret=$?; report; exit $ret
If you have multiple test commands and you want to run them all, but keep track of whether one has failed, you can use bash's ERR trap.
failures=0
trap 'failures=$((failures+1))' ERR
test1
test2
if ((failures == 0)); then
echo "Success"
else
echo "$failures failures"
exit 1
fi
answered 2 hours ago
GillesGilles
553k13311341643
553k13311341643
add a comment |
add a comment |
Eduardo is a new contributor. Be nice, and check out our Code of Conduct.
Eduardo is a new contributor. Be nice, and check out our Code of Conduct.
Eduardo is a new contributor. Be nice, and check out our Code of Conduct.
Eduardo is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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%2funix.stackexchange.com%2fquestions%2f519567%2fbash-execute-two-commands-and-get-exit-status-1-if-first-fails%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