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;








1















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?










share|improve this question









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.

























    1















    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?










    share|improve this question









    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.





















      1












      1








      1








      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?










      share|improve this question









      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






      share|improve this question









      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.










      share|improve this question









      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.








      share|improve this question




      share|improve this question








      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.






















          2 Answers
          2






          active

          oldest

          votes


















          3














          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)





          share|improve this answer






























            3














            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





            share|improve this answer























              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.









              draft saved

              draft discarded


















              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









              3














              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)





              share|improve this answer



























                3














                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)





                share|improve this answer

























                  3












                  3








                  3







                  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)





                  share|improve this answer













                  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)






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  Jeff SchallerJeff Schaller

                  45.8k1165150




                  45.8k1165150























                      3














                      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





                      share|improve this answer



























                        3














                        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





                        share|improve this answer

























                          3












                          3








                          3







                          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





                          share|improve this answer













                          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






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 2 hours ago









                          GillesGilles

                          553k13311341643




                          553k13311341643




















                              Eduardo is a new contributor. Be nice, and check out our Code of Conduct.









                              draft saved

                              draft discarded


















                              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.




                              draft saved


                              draft discarded














                              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





















































                              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

                              Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                              Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                              François Viète Contents Biography Work and thought Bibliography See also Notes Further reading External links Navigation menup. 21Google Bookspp. 75–77Google BooksDe thou (from University of Saint Andrews)ArchivedGoogle BooksGoogle BooksGoogle BooksGoogle booksGoogle Bookscc-parthenay.frL'histoire universelle (fr)Universal History (en)ArchivedAdsabs.harvard.eduPagesperso-orange.frArchive.orgChikara Sasaki. Descartes' mathematical thought p.259Google BooksGoogle BooksGoogle Bookspp. 152 and onwardGoogle BooksGoogle BooksScribd.comGoogle Books1257-7979Google BooksGoogle BooksGoogle BooksGoogle BooksGoogle BooksGoogle BooksGallica.bnf.frGoogle BooksGoogle Books"François Viète"Francois Viète: Father of Modern Algebraic NotationThe Lawyer and the GamblerAbout TarporleySite de Jean-Paul GuichardL'algèbre nouvelle"About the Harmonicon"cb120511976(data)1188044800000 0001 0913 5903n82164680ola2013766880073431702w6vt1sb70287374827140948071409480