如何在UniData中向操作系统返回退出码?
在Rocket UniData 7.3.7中向操作系统返回自定义退出码
UniBasic 方案
要让UniBasic程序退出到Shell并传递自定义退出码(供Bash的$?获取),需使用带参数的EXIT命令——该命令会直接终止整个UniData会话并返回指定数值给操作系统。
示例代码:
* 业务逻辑处理 PRINT "执行完成" * 返回退出码42 EXIT 42
运行方式:
从Shell以批处理模式启动程序:
udt -b /path/to/your/program.bas
执行后,在Shell中执行echo $?即可看到返回的42。若在UniData交互式会话中运行该程序,EXIT会直接退出会话回到Shell,同样传递退出码。
ECL 方案
如果使用UniData的ECL(嵌入式命令语言),同样可以通过带参数的EXIT命令实现:
EXIT 20
批处理模式下运行ECL脚本后,Shell的$?将获取到指定的退出码。
注意事项
- 退出码必须是0-255之间的整数,超出范围的数值会被操作系统自动取模。
STOP和ABORT仅终止当前程序并返回UniData会话,不会退出到Shell,因此无法传递退出码给操作系统。
内容的提问来源于stack exchange,提问作者mvanle
相关产品推荐
相关产品推荐

