1. 程式人生 > >ruby system命令不會載入環境變數

ruby system命令不會載入環境變數

ruby 有多種執行系統命令的呼叫方式。總結一下常用的有如下幾種(老版本的可以忽略,如:spawn):

1.  system  執行完成後會返回true or false,用來判斷命令的執行成功與失敗;

2.  %x  同(··)執行方式一樣,會返回標準錯誤和標準輸出的資訊;

3.  exec  直接執行後,會覆蓋當前程序,並且直接退出當前指令碼,沒有返回值,所以不能確定執行結果。

今天遇到一個問題,使用system命令在啟動一個java執行緒時,java程式載入不到環境變數,然後使用(·command·)方式執行後有能夠載入當前使用者的環境變數。

這個差異ruby文件中沒有說明,可能確實是這兩種執行方式的差異。在此標記一下。