Bourneシェルでファイル記述子へのコマンドの出力をキャプチャするにはどうすればよいですか?
質問
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」を任意のコマンドに置き換えます
所属していません StackOverflow