Рейтинг:
1
Richard MacCutchan
Это не имеет ничего общего с HCI, это стандартный сценарий оболочки Linux. "2>&1" говорит оболочке отправить все выходные данные, которые обычно идут в stderr, в stdout. "|" (Символ канала) говорит о передаче всех выходных данных (то есть комбинированных stderr и stdout) команде tee, которая отправляет их на терминал, а также именованный файл. Эта и другие функции оболочки подробно описаны на странице man для bash.
Vaclav_
поток stderr в stdout. Символ "|" (символ трубы) говорит о передаче всех выходных данных (то есть комбинированных stderr и stdout
Но в этот момент stderr был перенаправлен на stdout, так что там нет stderr как "весь вывод", так что же происходит commbined / piped ?
Richard MacCutchan
Это просто означает, что два потока чередуются и проходят через трубу как один поток. Таким образом, вы увидите любые сообщения об ошибках, смешанные с обычным выводом. В качестве альтернативы вы можете перенаправить stderr (дескриптор 2) в текстовый файл с помощью такой команды, как:
hcitool scan --info --class 2>errors.txt | tee temp_file.txt
Тогда вам нужно будет проверить errors.txt после завершения команды.
Vaclav_
Теперь оба этих примера выводятся на консоль.
Кстати, я использовал HCI в качестве примера, думаю, мне нужно будет объяснить это в следующий раз, когда Gees.
cout <<"\t\t \ t hciconfig -a 2>&1"<< endl;
система("hciconfig -a 2>&1");
соиь <&ЛТ;"\т\т\т\hciconfig -а "на<< епси;
система("hciconfig -a ");
Richard MacCutchan
Именно так. Разве это проблема?
Vaclav_
Да это проблема
показывает, что использование "2>&1" в этом случае является фиктивным.
Следовательно, первоначальный ответ на вопрос № 1 является неполным - для (моей) учебной цели.
Richard MacCutchan
Что значит "фальшивка"? Может быть, вы могли бы уточнить, чего именно вы пытаетесь достичь здесь.
phil.o
Вы можете сказать, что это подделка, только если есть ошибка, которая не перенаправляется на консоль. Если ошибки нет, то невозможно сказать, есть ли ошибка или нет. Есть ли какая-то ошибка?