Подтвердить что ты не робот

Как получить полную командную строку в рубине?

Как получить полную командную строку в ruby?

$ rails c
> $0 
=> "script/rails"
> ARGV
[]
> `ps -eo "%p|$|%a" | grep '^\\s*#{Process.pid}'`.strip.split("|$|")[1]
=> "/home/sam/.rvm/rubies/ruby-1.9.3-p194-perf/bin/ruby script/rails console"

Есть ли что-нибудь более чистое, чем ninja ps, которое я могу сделать, чтобы получить те же результаты?

Чтобы уточнить, в случае возникновения путаницы, я хочу получить тот же результат, что и:

`ps -eo "%p|$|%a" | grep '^\\s*#{Process.pid}'`.strip.split("|$|")[1]

ARGV возвращается. $ 0 отсутствует полный путь.

4b9b3361

Ответ 1

Я бы использовал:

#!/usr/bin/env ruby

puts "Process ID: #{ $$ }"
puts `ps axw`.split("\n").select{ |ps| ps[ /\A#{ $$ }/ ] }

Запуск внутри выходов script:

18222 s000  S+     0:00.25 /Users/foo/.rbenv/versions/1.9.3-p385/bin/ruby /Users/foo/.rbenv/versions/1.9.3-p385/bin/rdebug /Users/foo/Desktop/test.rb