我有这个命令:
echo $(bash main.sh)
在 中main.sh
,我运行了一个 Java 程序,该程序立即抛出异常。echo 的退出代码为 0,这意味着命令成功。有没有办法让它使用 的退出代码失败bash main.sh
?
的使用echo
不是强制性的,可以用另一个程序代替。
答案1
您可以先将命令替换保存在变量中,这样您就可以保留退出代码:
output=$(bash main.sh)
exit_code=$?
some-command "$output"
(exit "$exit_code") # now $? will have exit status of the script
例子:
$ foo=$(echo bar; false)
$ ret=$?
$ echo $ret
1