Стандартный способ захвата вывода команды в Bourne оболочки использовать $()
синтаксис:Как захватить вывод команды в дескриптор файла в оболочке Bourne?
output=$(mycommand)
Для команд, которые имеют много продукции, однако, для этого требуется оболочка выделяет память для всей вещи, как один длинный строка. Я бы предпочел, чтобы найти что-то, что делает моральным эквивалентом функции Unix C popen
, чтобы получить новый дескриптор файла я мог read
от:
newfd=popen(mycommand)
while read -u $newfd LINE; do
#process output
done
Является ли это вообще возможно?
bash4 имеет приятную новую функцию: coproc. это было бы идеально для вас! слишком плохо, что все еще так новое –