2013-03-20 68 views
1

美好的一天! 這是一個非常簡單的問題,但我不知道如何處理它。所以我問你的建議或方向。 我對調用unix命令做了一個system,並在執行過程中要求輸入字符串描述。我怎樣才能做到這一點? 謝謝!Ruby:如何在執行過程中將arg傳遞給系統命令

似乎我的問題解決了一半。要絕對明確有誰能夠告訴我,爲什麼這樣的代碼:

#/usr/local/bin/ruby19 
#Process.daemon(true) 
exec "/bin/cp src dst" 

工作正常,但如果#Process.daemon(true)被刪除它什麼也不做?

+0

您需要使用類似Open3.popen3的內容才能讀取進程輸出並寫入進程。 – 2013-03-20 06:02:54

+0

我試過Open3.popen3。看起來只是我需要的東西。 – Tkap 2013-03-20 07:03:14

+0

但是,如果我讓我的腳本作爲守護進程運行,結果是錯誤的。是否因爲該腳本成爲另一個線程,並有另一個PID?我之前沒有與流程進行過交易。需要更深入。 – Tkap 2013-03-20 07:13:16

回答

0

您可以使用IO.pipespawn(在Ruby 1.9.3中)創建一個管道到另一個進程寫入。例如,

r, w = IO.pipe 
spawn("cat", :in => r) 
r.close 

# the write to the pipe, which `cat` will read from 
w.write("hello\n") 
相關問題