后台进程返回的存储值[不退出状态]

时间:2013-10-15 09:56:58

标签: bash shell ubuntu-12.04 wc

我在数不清楚。文件中的行作为后台进程(我需要并行执行)

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

这只会为$ counting

返回一个空白

当我这样做时,

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

即在前台计算。它返回正确的值。

所以我猜这与父shell中无法访问的子变量有关? (以及一些答案建议IPC)还有其他方法来解决这个问题。

1 个答案:

答案 0 :(得分:3)

  

所以我猜这与父变量无法访问的子变量有关   贝壳?

绝对正确。

一种方法是使用临时文件并从中读取:

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