我的bash代码中有很多退出点.我需要在退出时做一些清理工作,所以我使用trap为这样的退出添加一个回调:
trap "mycleanup" EXIT
Run Code Online (Sandbox Code Playgroud)
问题是有不同的退出代码,我需要做相应的清理工作.我可以在mycleanup中获得退出代码吗?
我有一个bash脚本,对我的源代码运行三次检查,然后exit 0如果所有命令都成功,或者其中exit 1任何一个命令失败:
#!/bin/bash
test1 ./src/ --test-1=option
exit_1=$?
test2 ./src/ test-2-options
exit_2=$?
test3 ./src/ -t 3 -o options
exit_3=$?
# Exit with error if any of the above failed
[[ $exit_1 -eq 0 && $exit_2 -eq 0 && $exit_3 -eq 0 ]]
exit $?
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但感觉过长且冗长.有什么方法可以做得更好吗?具体来说,我不满意:
[[ ... ]],然后在下一行收集退出代码以退出[[ $var -eq 0 ]],而不是将它们视为布尔值理想情况下,最终结果将更具可读性:
exit_1=( test1 ./src/ --test-1=option )
exit_2=( test2 ./src/ test-2-options )
exit_3=( test3 ./src/ …Run Code Online (Sandbox Code Playgroud)