看板 Ruby 關於我們 聯絡資訊
環境: Ruby 1.9.3 狀況: 我現在寫了一個script去控制另外兩個commandline的程式 其中一個程式會吐出給另一個程式需要用的資料 但我現在遇到一個情況是 因為我把它通通寫在一個script裡面 然後利用IO.popen去呼叫這兩個程式執行 但ruby在執行的時候並不會等到第一個程式執行完畢 而是fork出另外一個threading(假設我的推測是對的)去跑第一個程式 自己再接著跑後半段的script, trigger了第二個程式執行 (在她需要的資料未完備的情況下啟動) 我想請問的是 有辦法確保在第一個程式執行完畢之後 再繼續跑script嗎? exec()? -- ˍ▃ˍ 好人不應該受制於正妹 而是正妹應該要考慮好人 // \\ aokman █◣ˍ_ 囧 for 囧rz 囧怪客 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.49.86
mars90226:我想你搞錯IO.popen了~ 你應該是需要exec 01/09 00:01
mars90226:popen是把程式開起來,然後把他的stdin,stdout當成檔案 01/09 00:02
mars90226:所以你應該在stdin中輸入input,從stdout讀出output 01/09 00:03
kira925:所以exec才是call了以後等他跑完搂? 01/09 00:43
kira925:另外 我用迴圈call了program2 並且要接STDOUT的結果 01/09 00:44
kira925:就是要用popen而不是exec? 01/09 00:45
mars90226:阿抱歉,我說錯了,你需要的是``,不是exec 01/09 01:16
mars90226:backticks,可以回傳程式的output 01/09 01:17
mars90226:迴圈的話看你的程式怎麼設計,不過``應該都很好用 01/09 01:18
kira925:``? 01/09 01:19
kira925:可以請你回文講解嗎....第一次看到 01/09 01:19