Unix-скрипт для записи ошибок процесса Java? - PullRequest
0 голосов
/ 16 сентября 2011

В настоящее время у нас есть сценарий оболочки, который выполняет класс Java и перенаправляет вывод в один файл, используя 2> & 1. Я хочу перехватить вывод в оболочке Unix после выполнения класса Java и найти, есть ли какие-либо ошибки. Можно ли это сделать без проверки выходного файла?

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Вы можете использовать tee:

myscript.sh 2>&1 | tee logfile

Это выведет весь вывод вашего скрипта (как stdout и stderr) в stdout, так и в файл журнала.

1 голос
/ 16 сентября 2011

Один из вариантов - отправить вывод ошибки в отдельный файл из стандартного вывода; тогда вам нужно только посмотреть, пуст ли файл ошибок или нет. Если он пуст, в stderr не сообщалось об ошибках (что, к сожалению, не гарантирует, что об ошибках не сообщалось в stdout, но это проблема QoI (качества реализации) для программы Java).

Вы также можете посмотреть состояние выхода из программы Java. Скорее всего, он завершится с нулевым статусом в случае успеха и может выйти с ненулевым статусом при ошибке. Однако он может сообщать об ошибках в stderr и по-прежнему успешно завершаться.

В зависимости от того, что делает процесс Java, вы можете запустить его с выводом, записанным в переменную оболочкой, используя $(...) или обратные ссылки. Затем вы просканируете переменную (вместо файла), чтобы выяснить, не пошло ли что-нибудь неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...