Как мне записать вывод команды в дескриптор файла в оболочке Bourne? - PullRequest
1 голос
/ 09 марта 2009

Стандартный способ захвата вывода команды в оболочке Bourne - использовать синтаксис $():

output=$(mycommand)

Для команд, которые имеют много выходных данных, однако, это требует, чтобы оболочка выделяла память для всего этого как одна длинная строка. Я бы предпочел найти что-то, что соответствует моральному эквиваленту функции Unix C popen, чтобы получить новый дескриптор файла, из которого я мог бы read из:

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

Это вообще возможно?

1 Ответ

7 голосов
/ 09 марта 2009
#!bash
ls | while read X
do 
    echo  $X is a directory entry
done

Замените 'ls' командой на ваш выбор

...