我試圖提交給$處理此系統調用的結果在perl腳本中使用awk時,如何獲得返回值?
my $process= system "adb shell ps | egrep adb | awk '{print $1}' ";
但是當print " $process \n";
我有零項
任何建議
我試圖提交給$處理此系統調用的結果在perl腳本中使用awk時,如何獲得返回值?
my $process= system "adb shell ps | egrep adb | awk '{print $1}' ";
但是當print " $process \n";
我有零項
任何建議
系統的返回值()是程序(here)的退出狀態。改爲使用反向操作:
$process = `...`;
我剛剛發現了關於SO本身的更詳細的解釋。編輯添加該鏈接 - What's the difference between Perl's backticks, system, and exec?
pmod提到的是正確的。因爲我一直在做這一點最近閱讀,只需添加評論什麼,我發現:
system
執行命令,並且命令完成後繼續您的Perl腳本。它返回命令的退出狀態。
backticks - ` `
這就像是系統,執行你啓動的命令並等待它返回。但是,與系統不同,該命令返回STDOUT。我認爲這是你在這裏尋找的東西。
exec
用新進程替換當前並且不返回任何內容。
希望幫助...
感謝您的信息 – Koby 2011-03-24 13:24:32
好吧這看起來就像$ process得到egrep adb的結果,而不考慮awk – Koby 2011-03-24 07:45:14
所以當調用我的$ process ='adb shell ps | egrep adb | awk'{print \ $ 1}'我得到了我需要的東西,謝謝 – Koby 2011-03-24 07:48:19