我在数不清楚。文件中的行作为后台进程(我需要并行执行)
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)还有其他方法来解决这个问题。
答案 0 :(得分:3)
所以我猜这与父变量无法访问的子变量有关 贝壳?
绝对正确。
一种方法是使用临时文件并从中读取:
outfile=$(mktemp)
( wc -l < abc.xyz ) > "${outfile}" &
wait
echo $(<$outfile)