You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中是否存在与全局变量$?功能等价的命名方法或变量?

Ruby中获取最近外部命令执行状态的替代方法

Ruby 提供了官方的命名方法替代特殊变量 $?,你可以直接调用 Process.last_status 获取完全一致的结果,该方法返回值是 Process::Status 类型的对象,包含所有外部命令执行的状态信息。

使用示例

# 执行任意外部命令,支持system、反引号、IO.popen等所有外部命令调用方式
system "echo test command"
`grep "test" sample.txt`

# 获取最近一次外部命令的执行状态
cmd_status = Process.last_status

常用状态字段

你可以通过该对象的命名方法读取所需的状态信息:

  • cmd_status.exitstatus:返回外部命令的整数退出码,正常执行成功返回0,异常退出返回对应非0错误码
  • cmd_status.success?:返回布尔值,直接判断命令是否执行成功
  • cmd_status.exited?:返回布尔值,判断命令是否为正常终止,而非被系统信号强制杀死
  • cmd_status.termsig:如果命令是被信号终止,返回对应的信号编号,否则返回nil

该方法和$?的行为完全一致,同样是线程隔离的,每个线程只会返回当前线程内最近执行的外部命令状态,你可以直接替换原有$?的使用场景,代码可读性会更高。

内容的提问来源于stack exchange,提问作者Keith Bennett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:15:02