2013-10-15 75 views
0

我正在計算否。在文件作爲後臺進程線(我需要並行執行)後臺進程返回的存儲值[不退出狀態]

counting="wc -l < abc.xyz" & 
`$counting` 
counting_process_id=$! 
wait $counting_process_id 
echo $counting 

這只是返回一個空白$計數

當我這樣做,

counting="wc -l < abc.xyz" 
`$counting` 
echo $counting 

即在前臺算。它返回適當的值。

所以我想這與父shell中無法訪問的子變量有關嗎? (和一些答案建議IPC)還有其他方法來解決這個問題。

回答

3

所以我想這與父親 shell中無法訪問的子變量有關?

絕對正確。

一種方法是利用一個臨時文件,並從中讀取:

outfile=$(mktemp) 
(wc -l < abc.xyz) > "${outfile}" & 
wait 
echo $(<$outfile) 
+0

+1對不起不知道你已經張貼了類似的答案:) – anubhava