退出带有错误代码的 jshell

Exit jshell with error code

我如何 /exit 一个 jshell 具有非零错误代码的会话?

set -e 这样的 bash 命令不可用。

现在,JShell 随 JDK 10 一起发布,后来又引入了一个新版本的 /exit,它采用可选代码段作为参数。该片段被评估为将返回给调用进程的错误代码。有关详细信息,请参阅 http://mail.openjdk.java.net/pipermail/kulla-dev/2017-November/002129.html

这是使用 jdk-10+ea-33 的新 /exit 命令的帮助文本:

|  Welcome to JShell -- Version 10
|  For an introduction type: /help intro

jshell> /help exit
|
|  /exit
|
|  Leave the jshell tool.  No work is saved.
|  Save any work before using this command
|
|  /exit
|       Leave the jshell tool.  The exit status is zero.
|
|  /exit <integer-expression-snippet>
|       Evaluate the snippet.  If the snippet fails or is not an integer expression,
|       display the error.  Otherwise leave the jshell tool with the
|       value of the expression as the exit status

jshell> /exit 123
|  Goodbye (123)

JDK9注意事项:您不能使用/exit退出JDK上的jshell会话9 带有非零错误代码。有关详细信息,请参阅 https://bugs.openjdk.java.net/browse/JDK-8185840