Как мне записать вывод команды в дескриптор файла в оболочке Bourne?
Вопрос
Стандартный способ захвата вывода команды в оболочке 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' командой на ваш выбор
Не связан с StackOverflow