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