Допустим, у меня есть скрипт, подобный следующему:
useless.sh
echo "This Is Error" 1>&2
echo "This Is Output"
И у меня есть другой сценарий оболочки:
alsoUseless.sh
./useless.sh | sed 's/Output/Useless/'
Я хочу записать "This Is Error" или любой другой stderr из useless.sh в переменную.
Давайте назовем это ОШИБКА.
Обратите внимание, что я использую стандартный вывод для чего-то. Я хочу продолжать использовать stdout, поэтому перенаправление stderr в stdout в этом случае бесполезно.
Итак, в основном, я хочу сделать
./useless.sh 2> $ERROR | ...
но это, очевидно, не работает.
Я также знаю, что могу сделать
./useless.sh 2> /tmp/Error
ERROR=`cat /tmp/Error`
но это безобразно и не нужно.
К сожалению, если здесь не появятся ответы, это то, что я собираюсь сделать.
Я надеюсь, что есть другой способ.
У кого-нибудь есть идеи получше?