我需要知道命令是成功还是失败,然后无条件地运行一些清理。
用于执行顺序命令的正常选项似乎都不适用于此处:
$ mycmd.sh && rm -rf temp_files/ # correct exit status, cleanup fails if mycmd fails
$ mycmd.sh ; rm -rf temp_files/ # incorrect exit status, always cleans up
$ mycmd.sh || rm -rf temp_files/ # correct exit status, cleanup fails if mycmd succeeds
Run Code Online (Sandbox Code Playgroud)
如果我要在 shell 脚本中执行此操作,我会执行以下操作:
#!/usr/bin/env bash
mycmd.sh
RET=$?
rm -rf temp_files
exit $RET
Run Code Online (Sandbox Code Playgroud)
有没有比分号将所有这些命令链接在一起更惯用的方法来在命令行上完成它?