터미널 애플리케이션이 충돌하는 경우에만 stderr 파이프

터미널 애플리케이션이 충돌하는 경우에만 stderr 파이프

터미널에서 사용자와 상호 작용하는 프로그램이 있습니다.

그러나 충돌이 발생하면 다른 도구를 통해 stderr을 파이프하여 정리/예쁜 인쇄를 하고 싶습니다.

이를 수행할 수 있는 방법이 있습니까?

내가 아는 한, stderr를 리디렉션하는 방법에는 모두 stdout을 사용하여 대화형 터미널을 숨기거나 중단시키는 작업이 포함됩니다.

답변1

작은 bash 스크립트로 프로그램을 래핑해야 할 수도 있지만 가능합니다. 파일을 화면에 stderr유지하면서 파일로 리디렉션할 수 있습니다 .stdout

#!/usr/bin/env bash

# Run my program, with stderr saved to a file
my_program 2> /tmp/stderr_output.txt

# If the program returned with anything but success, print stderr
if [ ! $! ]; then
    cat /tmp/stderr_output.txt
fi

cat유틸리티를 사용하는 대신 서식 유틸리티를 사용하여 오류 텍스트를 출력할 수 있습니다.

관련 정보