.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
関数には1つのパラメータが必要です。