Bourne シェルでコマンド出力をキャプチャする標準的な方法は、次の$()構文を使用することです。
output=$(mycommand)
ただし、大量の出力があるコマンドの場合、これには、シェルが全体に 1 つの長い文字列としてメモリを割り当てる必要があります。popen私ができる新しいファイル記述子を取得するために、Unix C function と道徳的に同等のことをするものを見つけたいと思いますread:
newfd=popen(mycommand)
while read -u $newfd LINE; do
#process output
done
これは可能ですか?