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

つまり、フォアグラウンドで数えます。適切な値を返します。

これは、親シェルでアクセスできない子変数に関係していると思いますか? (そしていくつかの回答はIPCを示唆しています)これを回避する他の方法はありますか。

4

1 に答える 1

3

これは、親シェルでアクセスできない子変数に関係していると思いますか?

絶対に正しい。

1 つの方法は、一時ファイルを利用してそこから読み取ることです。

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