.bashrc
예를 들어 다음 명령을 실행하여 bash에서 pdf 파일을 열 수 있는 함수가 my에 정의되어 있습니다 copen myfile.pdf
.
function copen {
if [[ $# -eq 1 ]] ; then
xdg-open "$1" > /dev/null 2>&1 & disown
return 1
fi
}
이 명령을 실행하여 백그라운드에서 Okular를 실행하고 STDOUT 및 STDERR을 /dev/null
bash로 리디렉션하고 bash와의 연결을 끊습니다. 그러나 실행한 후에도 copen myfile.pdf
출력이 bash( QSqlQuery::exec: database not open
여러 번)로 인쇄되고 그 이유를 이해할 수 없습니다. 이 출력을 어떻게 억제할 수 있습니까?
코드를 다음으로 변경해도 문제가 지속됩니다. nohup xdg-open "$1" > /dev/null 2>&1 &
.
답변1
다음 방법을 시도해 보세요.
#!/usr/bin/bash
copen() {
(($# == 1)) && xdg-open "$1" &>/dev/null & disown
}
copen "$1"
다음과 같이 스크립트를 실행합니다. ./myscript SomePDFfile.pdf
이것은 bash >4 에 추가된 속기입니다 &>/dev/null
.>/dev/null 2>&1
이 copen
함수에는 하나의 매개변수가 필요합니다.