如何以非零退出状态退出 Forth?

How to exit Forth with a non-zero exit status?

我想以非零退出状态退出 Forth 程序(使用 gforth 0.7.3)。

我试过:

1 bye

但是 1 没有被解释为 bye 的参数(而且我没想到这会起作用,我在文档中找不到 bye 会接受的任何提示一个论点)。

请注意,我不想触发异常,因为它也会打印一条错误消息(除非有一种方法可以从 Forth 程序本身中抑制异常的错误消息)。

那么,我如何将 Forth 程序退出到提供非零退出状态的托管 environment/OS? (基本上,我正在寻找 return EXIT_FAILURE; // from main() (C) 或 exit(EXIT_FAILURE); (C) 或 System.exit(1); (Java) 的等价物。)

在 Gforth 中,内部字 (bye) ( n -- ) 可用于 return 到 OS 的退出状态。

例如Bash中的以下命令:

gforth -e '123 (bye)' ; echo $?

打印“123”。

一般来说,return non-zero 退出状态的方法还没有标准化。