2010-02-01 60 views
11
irb(main):002:0> $$ 
=> 5052 

什麼意思$$在Ruby中以及How/Where在哪裏使用它?

回答

18

$$process ID。它被命名爲遵循Perl的方式,後者依次遵循Bourne shell;他們兩個也以相同的方式使用$$

+1

@Wayne:請隨時編寫自己的關於「英語」同義詞的答案,也許可以從評論中鏈接到它。 :-) – 2013-06-12 02:45:02

+1

如果你拒絕了我的編輯,因爲它是錯誤的或惡化你的答案,我接受你的拒絕(但這將是很好的知道爲什麼)。如果你拒絕了,因爲你認爲你的答案只屬於你,那麼:http://meta.stackexchange.com/a/15843/141929 – 2013-06-12 20:30:25

+0

@WayneConrad真的,更多的是因爲我不喜歡'英語'而不是其他任何東西。我不喜歡的一部分原因是:1.它只在'stdlib'中,而不在'core'中,很少被提及或使用過; 2.''''在Perl中有副作用(它將'''','' $&'和'&'',[帶有性能影響](http://perldoc.perl.org/English.html#PERFORMANCE))完全拒絕了我。 (當然,Ruby不是Perl,但是老習慣很難實現。) – 2013-06-12 22:04:30

5

這是Ruby解釋器的進程ID。 $是全局變量的前綴,請參閱here以獲取列表。

+0

+1爲清單 – AJP 2013-03-15 12:18:21

7

This看起來像這樣的東西很好的參考...有很多symboly善良。

+0

+2爲更好的清單! – AJP 2013-03-15 12:20:12

1

這是當前Ruby進程的進程ID。只讀

2
pipe = IO.popen("") 
if pipe 
    STDERR.puts "In parent, child pid is #{pipe.pid}" 
else 
    STDERR.puts "In child, pid is #{$$}" 
end 

此示例顯示如何使用進程ID。進程ID是'執行環境變量'(預先變量的一部分)的一部分。