
Linux에서 터미널에서 그래픽 프로그램(예: Sublime Text)을 실행하면 프로그램은 제대로 실행되지만 정확하게는 실패도 아니고 유용한 로그 메시지도 아닌 다음과 같은 "항목"인 콘솔 메시지에 기록됩니다.
(sublime:15269): Gtk-WARNING **: Unable to locate theme engine in module_path: "oxygen-gtk",
(sublime:15269): GLib-CRITICAL **: Source ID 958 was not found when attempting to remove it
...백그라운드에서 프로그램을 실행하고 터미널을 계속 사용할 때 문제가 되는 문제입니다.
이것을 제거하는 가장 좋은 방법은 무엇입니까?
바이너리 시작을 래핑하지만 모든 출력( )을 억제하는 스크립트로 바이너리를 대체하려고 생각했는데 > /dev/null 2>&1
그렇게 하는 더 깔끔한 방법은 없을까요?
답변1
Bash >/dev/null 2>&1
에서는 &>/dev/null
.
다음과 같이 할 수 있습니다:
#Run a command in the background, ignoring its STDOUT and STDERR
silence() { local cmd="$1"; shift; "$cmd" "$@" &>/dev/null & }
#The same, but stop caring about it too (no job control, no SIGHUP when the parent terminal closes)
abandon() { silence "$@"; disown; }
그렇다면 당신은 할 것입니다 :
silence sublime_text
또는
abandon sublime_text
터미널에서 숭고한 텍스트를 쉽게 제어하고 싶은지 여부에 따라 다릅니다.
($@ 마법은 더 복잡한 인수를 처리하는 것입니다)