Lua os.execute 函数返回值混乱

我正在尝试在 SAS 中运行以下代码:

proc lua restart;
submit;
    local cmd = "&cmd."
    local ret_code = os.execute(cmd)
    sas.symput('ret_code', ret_code)
endsubmit;
run;

宏变量 cmd 解析成了我想要运行的命令。当成功时,返回值等于 1(为什么不是 0?)。但当失败时,则解析成了一个点。

我感到困惑,为什么我会得到这样奇怪的返回值?如何从 lua 脚本中获得 0(表示一切正常)和大于 0(表示发生错误)的返回值?我使用的是 Linux 操作系统。

点赞