Wie bekomme ich die vollständige Befehlszeile in Ruby?Wie bekomme ich die volle Befehlszeile in 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"
Gibt es etwas saubereres als Ninja ps kann ich tun, um die gleichen Ergebnisse zu erhalten?
Um zu klären, falls es Verwirrung ist, möchte ich genau die gleiche Ausgabe wie:
`ps -eo "%p|$|%a" | grep '^\\s*#{Process.pid}'`.strip.split("|$|")[1]
ARGV wird wieder leer kommen.
$ 0 fehlt der vollständige Pfad.
Sie fragen nach einer vollständigen Befehl in Ruby, aber dann in Ihrem Beispiel sagen Rails. Welches ist es? Beide haben "Befehlszeilen", aber sie sind sehr unterschiedliche Anwendungsschichten. Und was meinst du mit "vollständige Befehlszeile"? Eine sh/bash/zsh-Eingabeaufforderung? –
@theTinMan hast du die von mir bereitgestellte Probe gelesen und ausgeführt? Ich möchte 'ps -eo"% a "' für meinen aktuellen Ruby-Prozess. –
Sie sagen "' Schienen c' ", die eine Rails-Befehlszeile ist. 'ps' irgendetwas wird nur einen laufenden Prozess zurückgeben, keine Befehlszeile. Keiner wird eine Befehlszeile "zurückgeben". 'rails c' basiert auf IRB und ist auch keine vollständige" Kommandozeile ". Sie sind interaktive Shells in Ruby oder Ruby mit Rails Erweiterungen geladen. –