gpt4 book ai didi

java - 将 Java 系统退出值返回给 bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:26 27 4
gpt4 key购买 nike

我试图从 java 程序 (System.exit(1);) 获取返回值到 shell 脚本中,但它似乎返回了 jvm 退出代码,它总是0,如果它没有崩溃。出于测试目的,这是我的 main() 中的第一行。有人知道怎么做吗?

我的 bash 代码:

java  bsc/cdisc/ImportData $p $e $t


#-----------------------------------------
# CATCH THE VALUE OF ${?} IN VARIABLE 'STATUS'
# STATUS="${?}"
# ---------------------------------------
STATUS="${?}"

# return to parent directory
cd ../scripts


echo "${STATUS}"

谢谢

最佳答案

如果您的脚本只有这两行,那么您没有检查正确的退出代码。

我猜你正在做类似的事情:

$ java YourJavaBinary
$ ./script

脚本只包含:

STATUS="${?}"
echo "${STATUS}"

此处,脚本 在子 shell 中执行。因此,当您执行脚本时,$? 是该 shell 中最后一条命令的值,而在子 shell 中则为空。因此,它始终返回 0

您可能想要做的是在脚本本身中调用 java 二进制文件。

java YourJavaBinary
STATUS="${?}"
echo "${STATUS}"

或者不使用脚本直接检查退出代码:

$ java YourJavaBinary ; echo $?

关于java - 将 Java 系统退出值返回给 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18763849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com