web-dev-qa-db-ja.com

bashスクリプトからGUIダイアログポップアップを非表示にする

迷惑なGUIダイアログをポップアップするコマンドを実行するbashスクリプトを実行しています(スクリプト内で複数回実行します)。このポップアップは、スクリプトをバックグラウンドで実行しているときにUIで実行していることをすべて中断します。

UI

これらを隠す方法はありますか?

3

スクリプトから実行されるGUIアプリケーションは、DISPLAY変数で指定されたXサーバーに接続しようとします。その変数をクリアすると、プログラムはウィンドウを開くことができなくなるため、ポップアップを効果的に防ぐことができます。たとえば、これを実行しようとすると、次のようになります。

DISPLAY= xterm

次のようなエラーが発生します。

xterm: Xt error: Can't open display:
xterm: DISPLAY is not set

上記のxtermで示したように実行するコマンドの直前にDISPLAY=を書き込むか、スクリプトの前半のどこかに独自の行にDISPLAY=を書き込むことができます。

ただし、DISPLAYが設定されていないと、一部のプログラムがまったく起動しない場合があります。それがポップアップを生成するプログラムの場合であり、このプログラムがポップアップ以外の有用なことを行う場合、この手法を使用することはできません。とにかく一撃の価値があります。

2
janos