2011-09-19 116 views
7

我想通過命令行爲我的pinger程序提供反饋,並使用ps ax查看它。我發現SO q。但如何通過Ruby設置命令行值以通過PS查看狀態?

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

我通過ruby ./pinger

+0

我懷疑你可以做的不w/o修改Ruby本身。 –

+0

@Dave:你可以賦值給'$ 0',這就是C的'argv [0]'的Ruby等價物,Ruby的'ARGV'只保存參數。 –

+0

啊,有趣。 –

回答

9

分配啓動腳本$0代替。例如,如果我開始irb

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

,然後通過在irb

>> $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 *,因此我切換到了[*煎餅*](http://www.youtube.com/watch?v=dJUvPZI3Cr4)。此外,我喜歡煎餅:) –