1

Bourne シェルでコマンド出力をキャプチャする標準的な方法は、次の$()構文を使用することです。

output=$(mycommand)

ただし、大量の出力があるコマンドの場合、これには、シェルが全体に 1 つの長い文字列としてメモリを割り当てる必要があります。popen私ができる新しいファイル記述子を取得するために、Unix C function と道徳的に同等のことをするものを見つけたいと思いますread:

newfd=popen(mycommand)
while read -u $newfd LINE; do
  #process output
done

これは可能ですか?

4

1 に答える 1

7
#!bash
ls | while read X
do 
    echo  $X is a directory entry
done

「ls」を選択したコマンドに置き換えます

于 2009-03-08T23:19:00.857 に答える