bash и gcc

Компьютеры Linux unix bash gcc

Вопрос вот в чем. Если в баше ввести:
# gcc $1 -o $2 > debug.txt
(причем в файле $1 есть ошибки)
то никакого вывода в файл об ошибках мы не получим. Надо вводить
# gcc $2 -o $2 2> debug.txt
и тогда все будет прекрасно.
Но мне нужно сохранить вывод не в файле, а в переменной. Что-то типа
# st=$(gcc $1 -o $2)
Но вывода нет. Как и в предыдущем случае надо как-то перенаправить stderr (на сколько я понял). Но как я не знаю, и google молчит.
Может кто расскажет, как это сделать? Не пользуясь промежуточными файлами.
Ответы:
k=$(gcc 2> &1 ...)
2> - stderr
1> - stdout
3>
4>
Служебные перенаправления принятые. Видимо в баше они пишутся без &. Попробуй все четыре канала(третий вроде дебаг, четвёртый сам не помню что, это очень древние алиасы, древнее 80 года) пустить куда надо. А вот как в переменную пихать - помнится мне можно делать только так , но у меня csh
# st=$(gcc $1 -o $2 2>&1 3>&1 4>&1)


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.