小编Tim*_*eap的帖子

在bash中使用退出代码

我有一个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)

这段代码有效,但感觉过长且冗长.有什么方法可以做得更好吗?具体来说,我不满意:

  • 必须运行该命令,然后将退出代码分配给变量
  • 必须使用[[ ... ]],然后在下一行收集退出代码以退出
  • 必须明确地将变量比较为0 [[ $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)

bash

12
推荐指数
2
解决办法
3945
查看次数

标签 统计

bash ×1