How to make `trap` know if the EXIT is after successful program finish or because of premature as an error or something 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) 2019 Community Moderator Election ResultsError handling in shell scriptHow to trigger error using Trap commandPrevent SIGINT from interrupting function call and child process(es) withinHow to keep last exit status after testKeep exit codes when trapping SIGINT and similar?How to make `local` capture the exit code?Restoring tty correctly with sttyPerl: Error code returned to open3 after killed programexceptions to ERR trapShell_exec of dynamically created script with else

How should I replace vector<uint8_t>::const_iterator in an API?

Was credit for the black hole image misattributed?

Did God make two great lights or did He make the great light two?

Do working physicists consider Newtonian mechanics to be "falsified"?

How to pronounce 1ターン?

Would an alien lifeform be able to achieve space travel if lacking in vision?

Did the UK government pay "millions and millions of dollars" to try to snag Julian Assange?

Why use ultrasound for medical imaging?

Python - Fishing Simulator

Why can't devices on different VLANs, but on the same subnet, communicate?

In horse breeding, what is the female equivalent of putting a horse out "to stud"?

Derivation tree not rendering

What are these Gizmos at Izaña Atmospheric Research Center in Spain?

When did F become S in typeography, and why?

He got a vote 80% that of Emmanuel Macron’s

does high air pressure throw off wheel balance?

Typeface like Times New Roman but with "tied" percent sign

Is there a writing software that you can sort scenes like slides in PowerPoint?

What is this lever in Argentinian toilets?

What can I do if neighbor is blocking my solar panels intentionally?

"... to apply for a visa" or "... and applied for a visa"?

How to split app screen on my Mac?

Why does this iterative way of solving of equation work?

What do you call a plan that's an alternative plan in case your initial plan fails?



How to make `trap` know if the EXIT is after successful program finish or because of premature as an error or something



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)
2019 Community Moderator Election ResultsError handling in shell scriptHow to trigger error using Trap commandPrevent SIGINT from interrupting function call and child process(es) withinHow to keep last exit status after testKeep exit codes when trapping SIGINT and similar?How to make `local` capture the exit code?Restoring tty correctly with sttyPerl: Error code returned to open3 after killed programexceptions to ERR trapShell_exec of dynamically created script with else



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















PROBLEM:



I have a shell program that I have been writing but I can't find out how to make sure that trap is trapping for cleanup at the end or because of a error in some command, it cleans up either way.



Here is the code:



################################### Successful exit then this cleanup ###########################################################3

successfulExit()

###############################################################################################################################33
####### Catch the program on successful exit and cleanup
trap successfulExit EXIT


QUESTION:



How can I make trap only trap EXIT on program finish?



Here is the full script:



debianConfigAwsome.5.3.sh










share|improve this question






























    2















    PROBLEM:



    I have a shell program that I have been writing but I can't find out how to make sure that trap is trapping for cleanup at the end or because of a error in some command, it cleans up either way.



    Here is the code:



    ################################### Successful exit then this cleanup ###########################################################3

    successfulExit()

    ###############################################################################################################################33
    ####### Catch the program on successful exit and cleanup
    trap successfulExit EXIT


    QUESTION:



    How can I make trap only trap EXIT on program finish?



    Here is the full script:



    debianConfigAwsome.5.3.sh










    share|improve this question


























      2












      2








      2


      1






      PROBLEM:



      I have a shell program that I have been writing but I can't find out how to make sure that trap is trapping for cleanup at the end or because of a error in some command, it cleans up either way.



      Here is the code:



      ################################### Successful exit then this cleanup ###########################################################3

      successfulExit()

      ###############################################################################################################################33
      ####### Catch the program on successful exit and cleanup
      trap successfulExit EXIT


      QUESTION:



      How can I make trap only trap EXIT on program finish?



      Here is the full script:



      debianConfigAwsome.5.3.sh










      share|improve this question
















      PROBLEM:



      I have a shell program that I have been writing but I can't find out how to make sure that trap is trapping for cleanup at the end or because of a error in some command, it cleans up either way.



      Here is the code:



      ################################### Successful exit then this cleanup ###########################################################3

      successfulExit()

      ###############################################################################################################################33
      ####### Catch the program on successful exit and cleanup
      trap successfulExit EXIT


      QUESTION:



      How can I make trap only trap EXIT on program finish?



      Here is the full script:



      debianConfigAwsome.5.3.sh







      shell-script exit-status trap






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 hours ago









      muru

      37.6k589165




      37.6k589165










      asked 7 hours ago









      somethingSomethingsomethingSomething

      1,850103460




      1,850103460




















          1 Answer
          1






          active

          oldest

          votes


















          4














          On entry to the EXIT trap, $? contains the exit status. That's the same value you'd find as $? after calling this script in another shell: either the argument passed to exit (truncated to the range 0–255) or the return status of the preceding command. In the case of an exit due to set -e, it's the return status of the command that triggered the implicit exit.



          Usually you should save $? and exit again with the same status.



          cleanup () 
          if [ -n "$1" ]; then
          echo "Aborted by $1"
          elif [ $status -ne 0 ]; then
          echo "Failure (status $status)"
          else
          echo "Success"
          fi

          trap 'status=$?; cleanup; exit $status' EXIT
          trap 'trap - HUP; cleanup SIGHUP; kill -HUP $$' HUP
          trap 'trap - INT; cleanup SIGINT; kill -INT $$' INT
          trap 'trap - TERM; cleanup SIGTERM; kill -TERM $$' TERM





          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
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512331%2fhow-to-make-trap-know-if-the-exit-is-after-successful-program-finish-or-becaus%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            On entry to the EXIT trap, $? contains the exit status. That's the same value you'd find as $? after calling this script in another shell: either the argument passed to exit (truncated to the range 0–255) or the return status of the preceding command. In the case of an exit due to set -e, it's the return status of the command that triggered the implicit exit.



            Usually you should save $? and exit again with the same status.



            cleanup () 
            if [ -n "$1" ]; then
            echo "Aborted by $1"
            elif [ $status -ne 0 ]; then
            echo "Failure (status $status)"
            else
            echo "Success"
            fi

            trap 'status=$?; cleanup; exit $status' EXIT
            trap 'trap - HUP; cleanup SIGHUP; kill -HUP $$' HUP
            trap 'trap - INT; cleanup SIGINT; kill -INT $$' INT
            trap 'trap - TERM; cleanup SIGTERM; kill -TERM $$' TERM





            share|improve this answer



























              4














              On entry to the EXIT trap, $? contains the exit status. That's the same value you'd find as $? after calling this script in another shell: either the argument passed to exit (truncated to the range 0–255) or the return status of the preceding command. In the case of an exit due to set -e, it's the return status of the command that triggered the implicit exit.



              Usually you should save $? and exit again with the same status.



              cleanup () 
              if [ -n "$1" ]; then
              echo "Aborted by $1"
              elif [ $status -ne 0 ]; then
              echo "Failure (status $status)"
              else
              echo "Success"
              fi

              trap 'status=$?; cleanup; exit $status' EXIT
              trap 'trap - HUP; cleanup SIGHUP; kill -HUP $$' HUP
              trap 'trap - INT; cleanup SIGINT; kill -INT $$' INT
              trap 'trap - TERM; cleanup SIGTERM; kill -TERM $$' TERM





              share|improve this answer

























                4












                4








                4







                On entry to the EXIT trap, $? contains the exit status. That's the same value you'd find as $? after calling this script in another shell: either the argument passed to exit (truncated to the range 0–255) or the return status of the preceding command. In the case of an exit due to set -e, it's the return status of the command that triggered the implicit exit.



                Usually you should save $? and exit again with the same status.



                cleanup () 
                if [ -n "$1" ]; then
                echo "Aborted by $1"
                elif [ $status -ne 0 ]; then
                echo "Failure (status $status)"
                else
                echo "Success"
                fi

                trap 'status=$?; cleanup; exit $status' EXIT
                trap 'trap - HUP; cleanup SIGHUP; kill -HUP $$' HUP
                trap 'trap - INT; cleanup SIGINT; kill -INT $$' INT
                trap 'trap - TERM; cleanup SIGTERM; kill -TERM $$' TERM





                share|improve this answer













                On entry to the EXIT trap, $? contains the exit status. That's the same value you'd find as $? after calling this script in another shell: either the argument passed to exit (truncated to the range 0–255) or the return status of the preceding command. In the case of an exit due to set -e, it's the return status of the command that triggered the implicit exit.



                Usually you should save $? and exit again with the same status.



                cleanup () 
                if [ -n "$1" ]; then
                echo "Aborted by $1"
                elif [ $status -ne 0 ]; then
                echo "Failure (status $status)"
                else
                echo "Success"
                fi

                trap 'status=$?; cleanup; exit $status' EXIT
                trap 'trap - HUP; cleanup SIGHUP; kill -HUP $$' HUP
                trap 'trap - INT; cleanup SIGINT; kill -INT $$' INT
                trap 'trap - TERM; cleanup SIGTERM; kill -TERM $$' TERM






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 6 hours ago









                GillesGilles

                547k13011131631




                547k13011131631



























                    draft saved

                    draft discarded
















































                    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%2f512331%2fhow-to-make-trap-know-if-the-exit-is-after-successful-program-finish-or-becaus%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

                    Can not update quote_id field of “quote_item” table magento 2Magento 2.1 - We can't remove the item. (Shopping Cart doesnt allow us to remove items before becomes empty)Add value for custom quote item attribute using REST apiREST API endpoint v1/carts/cartId/items always returns error messageCorrect way to save entries to databaseHow to remove all associated quote objects of a customer completelyMagento 2 - Save value from custom input field to quote_itemGet quote_item data using quote id and product id filter in Magento 2How to set additional data to quote_item table from controller in Magento 2?What is the purpose of additional_data column in quote_item table in magento2Set Custom Price to Quote item magento2 from controller

                    How to solve knockout JS error in Magento 2 Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?(Magento2) knockout.js:3012 Uncaught ReferenceError: Unable to process bindingUnable to process binding Knockout.js magento 2Cannot read property `scopeLabel` of undefined on Product Detail PageCan't get Customer Data on frontend in Magento 2Magento2 Order Summary - unable to process bindingKO templates are not loading in Magento 2.1 applicationgetting knockout js error magento 2Product grid not load -— Unable to process binding Knockout.js magento 2Product form not loaded in magento2Uncaught ReferenceError: Unable to process binding “if: function()return (isShowLegend()) ” magento 2

                    Nissan Patrol Зміст Перше покоління — 4W60 (1951-1960) | Друге покоління — 60 series (1960-1980) | Третє покоління (1980–2002) | Четверте покоління — Y60 (1987–1998) | П'яте покоління — Y61 (1997–2013) | Шосте покоління — Y62 (2010- ) | Посилання | Зноски | Навігаційне менюОфіційний український сайтТест-драйв Nissan Patrol 2010 7-го поколінняNissan PatrolКак мы тестировали Nissan Patrol 2016рвиправивши або дописавши її