0

我数着没有。文件中的行数作为后台进程(我需要并行执行)

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)还有其他方法可以解决这个问题。

4

1 回答 1

3

所以我想这与父 ​​shell 中无法访问的子变量有关吗?

完全正确。

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

outfile=$(mktemp)
( wc -l < abc.xyz ) > "${outfile}" &
wait
echo $(<$outfile)
于 2013-10-15T10:04:58.240 回答