2012-12-30 58 views
3

我有這樣的代碼爲什麼Ruby中不支持工作?

`ifconfig` 

%x(ifconfig) 

system("ifconfig") 

當我運行它,只顯示 「系統(」 使用ifconfig 「)」 的作品。我知道這是因爲我先分別運行它們。

+0

你是什麼意思只有「系統(」ifconfig「)」的作品?任何錯誤? –

+1

@EvgeniyRyzhkov這就是問題所在。根本沒有錯誤。我甚至不知道哪裏出了問題。前兩種方法什麼也沒有顯示。甚至沒有錯誤。第三種方法在控制檯中顯示「ifconfig」的輸出。 – user1535147

+0

@ user1535147他們的意思是:發生了什麼事情與您預期會發生什麼? –

回答

6

反引號和%x變體將結果的輸出返回到變量中。 system()將調用該命令並返回!!return_code

1.9.3p327 :001 > `ifconfig` 
=> "eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>..." 

1.9.3p327 :002 > %x(ifconfig) 
=> "eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>..." 

1.9.3p327 :003 > system("ifconfig") 
eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 
... 
=> true