Bourneシェルでファイル記述子へのコマンドの出力をキャプチャするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/624520

  •  05-07-2019
  •  | 
  •  

質問

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

output=$(mycommand)

ただし、出力が多いコマンドの場合、これにはシェルが1つの長い文字列としてメモリ全体を割り当てる必要があります。 UnixのC関数 popen と同等の道徳的なことをして、 read から新しいファイル記述子を取得したい:

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

これは可能ですか?

役に立ちましたか?

解決

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

「ls」を任意のコマンドに置き換えます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top