lat*_*ion 7 unix shell exit command-execution
我有一种情况,我在我的shell脚本中有一个命令,必须在同一个脚本中执行退出命令后执行(我知道!!这听起来很疯狂!)
我想找到类似的解决方案
#!/bin/sh
ls -l ~/.
exit $?
touch ~/abc.txt
Run Code Online (Sandbox Code Playgroud)
这里我希望命令touch ~/abc.txt在exit $?运行后执行,命令touch ~/abc.txt可以是任何命令.
约束: 1)我无法修改exit $?上述脚本的一部分.2)该命令必须仅在exit $?命令后执行.
我不确定是否有解决方案,但任何帮助表示赞赏.
Wil*_*ell 10
典型的方法是设置陷阱:
trap 'touch ~/abc.txt' 0
Run Code Online (Sandbox Code Playgroud)
这将在shell退出时调用touch命令.在某些shell(例如bash)中,如果脚本因信号而终止,则也会执行陷阱,但在其他shell(例如)中则dash不会.仅当最后一个命令是,才有可移植方式来调用命令exit.