LINUX.ORG.RU

желательно без использования файлов. те такой вариант фиговый:

X=$(prog 2>/tmp/yyy)

Y=$(cat /tmp/yyy)

quest ★★★★
() автор топика

Без создания файлов никак, поток вывода может быть только один.

Вот здесь предлагается ещё такое:

#!/bin/bash
exec 3>&1 4>&2 #set up extra file descriptors
error=$( { ./useless.sh | sed 's/Output/Useless/' 2>&4 1>&3; } 2>&1 )
echo "The message is \"${error}.\""
exec 3>&- 4>&- # release the extra file descriptors

schizoid ★★★
()
Ответ на: комментарий от quest

Шелл - «плох всюду, кроме pipe» (c), а это _один_ поток.

Можно в принципе, как показал schizoid, добавить разделитель после stdout, склеить, разделить при возврате (установив нужную IFS).

Но, имхо, вариант с временным файлом вполне идиоматичен для баша.

anonymous
()
Ответ на: комментарий от anonymous

что-ж впилил с временным файлом, кривизна однако(

quest ★★★★
() автор топика
Ответ на: комментарий от Olegymous

X=$(prog 2>&1)
не?

не, нужен отдельно stderr и отдельно stdout

quest ★★★★
() автор топика
Ответ на: комментарий от sdio

потому что из за какой то фигни нужно создавать файл а потом его еще и уничтожать а может он не создаться, может место кончилось в tmp... кривое решение для такой простейшей задачи

quest ★★★★
() автор топика
Ответ на: комментарий от sdio

слышал естественно, а может мой скрипт заюзали на системе где /tmp находится на / и он в readonly ?

quest ★★★★
() автор топика
Ответ на: комментарий от sdio

ты мне предлагаешь mount делать своего каталога на tmpfs и там хранить файлы? те еще и просить права root на mount? )

quest ★★★★
() автор топика
Ответ на: комментарий от quest

Нет. я намекаю что писать можно в tmpfs, а куда он смонтирован не важно. Вот уже N лет как в linux'e tmpfs из коробки монтируется в /dev/shm/

sdio ★★★★★
()
Ответ на: комментарий от sdio

вообщем по факту сейчас через файлы я и сделал, но не круто это. предложите более простое решение - будет круто)

quest ★★★★
() автор топика
Ответ на: комментарий от quest

по факту сейчас через файлы я и сделал,

Да, вижу. Анонимусы в игноре, поэтому твой ответ о файлах не видел.

sdio ★★★★★
()
Ответ на: комментарий от aol

что то я не догоняю как тут отдельно получить stdout и stderr в разные bash переменные?

quest ★★★★
() автор топика
Ответ на: комментарий от aol

Нужно быть шизоидом, чтобы использовать такое в своем коде. Через пол года будешь час втыкать в это нагромождение костылей. Я такими «оптимизациями», когда-то тоже страдал, пока не поумнел.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.