Как мне записать вывод команды в дескриптор файла в оболочке Bourne?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

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

output=$(mycommand)

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

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