2011-09-19 20 views
7

私はpingerプログラムのフィードバックをコマンドラインから提供し、ps axを使って表示したいと考えています。PS経由でステータスを見るためにRuby経由でコマンドライン値を設定する方法は?

SO qが見つかりました。しかし

.... 
ARGV[0] = "Hello!" # does nothing 

は、私が代わりに$0ruby ./pinger

+0

私はあなたがRuby自体を変更することなくそれを行うことができるのではないかと疑います。 –

+0

@Dave:Cの 'argv [0]'のRubyに相当する '$ 0'を代入することができます。Rubyの' ARGV'は引数を保持します。 –

+0

ああ、興味深い。 –

答えて

9

割り当てを経由してスクリプトを起動しています。私はirbにかけてirb

$ ps | egrep 'irb|pancakes' 
3119 ttys000 0:01.02 irb 
3131 ttys001 0:00.00 egrep irb|pancakes 

を起動して、たとえば、:

>> $0 = 'pancakes' 

とバック他の端末へ:

$ ps | egrep 'irb|pancakes' 
3119 ttys000 0:01.07 pancakes 
3135 ttys001 0:00.00 egrep irb|pancakes 

あなたは、この小さなスクリプトを確認することができますよく:

#!/usr/bin/env ruby 
$0 = 'pancakes' 
sleep 10 

実行し、別の端末にジャンプしてps | grep pancakesを実行すると、パンケーキプロセスが表示されます。

+0

優れています。ありがとうございました! –

+2

+1のパンケーキ。 –

+1

@ rm-rf:* foo *に疲れてしまったので、私は[* pancakes *](http://www.youtube.com/watch?v=dJUvPZI3Cr4)に切り替えました。それに、私はパンケーキが好きです:) –

関連する問題