Shell script: Execute command after running "exit" command in the shell script

command-execution, exit, shell, unix

Solution

The typical approach is to set a trap:

trap 'touch ~/abc.txt' 0

This will invoke the touch command when the shell exits. In some shells (eg `bash`), the trap will also be executed if the script terminates as the result of a signal, but in others (eg `dash`) it will not. There is no portable way to invoke the command only if the last command was `exit`.

Problem

I have a situation where in I have a command in my shell script that must be executed after a exit command is executed in the same script (I know!! It sounds crazy!!) I want to find a solution for something like ``` #!/bin/sh ls -l ~/. exit $? touch ~/abc.txt ``` Here I want the command `touch ~/abc.txt` execute after `exit $?` has run and the command `touch ~/abc.txt` can be any command. Constraints: 1) I cannot modify the `exit $?` part of the above script. 2) The command must be executed only after the `exit $?` command. I'm not sure if there is a solution for this but any help is appreciated.

Original source