Мне нужно внедрить тестовый жгут для хранилища данных Azure SQL с использованием sqlcmd в Linux. В своем тесте я хочу зафиксировать любые сообщения об ошибках, обнаруженные sqlcmd, но отправить результаты запроса в/dev/null (используя аргумент -o). При рассмотрении https://msdn.microsoft.com/en-us/library/ms162773.aspx, кажется, что если -o используется, -r1 не имеет смысла.Разделение stdout sqlcmd и stderr
-r[0 | 1]
Redirects the error message output to the screen (stderr). If you do not specify a parameter or if you specify 0, only error messages that have a severity level of 11 or higher are redirected. If you specify 1, all error message output including PRINT is redirected. Has no effect if you use -o. By default, messages are sent to stdout.
Проблемы с пониманием того, почему stdout и stderr будут перемешаны таким образом.
Мое единственное средство запуска sqlcmd в фоновом режиме при записи «stdout + stderr» в именованный канал, а затем отключить сообщения об ошибках из результатов именованного канала?
Я не хочу задерживаться при записи вывода, но хочу вернуть все результаты клиенту.