Ruby 2.5 был недавно выпущен.
Ruby 2.5 добавил Process # last_status в качестве псевдонима для $?
Он возвращает статус последнего выполненного дочернего процесса в текущем потоке.
>> Process.wait Process.spawn("exit 0")
=> 18447
>> $?
=> #<Process::Status: pid 18447 exit 0>
>> Process.last_status
=> #<Process::Status: pid 18447 exit 0>
>> Process.last_status == $?
=> true
Он возвращает nil, если в текущем потоке никогда не выполнялся дочерний процесс.
>> Process.last_status => nil
Он не принимает никаких аргументов.
>> Process.last_status(1)
Traceback (most recent call last):
3: from /home/atul/.rvm/rubies/ruby-2.5.0/bin/irb:11:in `<main>'
2: from (irb):2
1: from (irb):2:in `last_status'
ArgumentError (wrong number of arguments (given 1, expected 0))