Zenityを使用してスクリプトを書いています。ただし、zenity 3.4.0にはバグがあり(最新のUbuntuバージョンで修正されています)、0または1ではなく終了コード139が返されます。ただし、バグがまだ存在するシナリオで使用する必要があります。
したがって、解決策は、カスタムzenity実行可能ファイルをバンドルすることです。しかし、スクリプト内のカスタムコマンドでzenityコマンドをオーバーライドするにはどうすればよいですか?
システムのデフォルトの代わりにカスタムzenity実行可能ファイルを使用するには、それをディレクトリに配置し、そのディレクトリをPATH
に追加します。
実行可能ファイルをディレクトリ$bindir
に配置したとします。
次に、$bindir
をPATH
変数に追加できます。
export PATH="$bindir:$PATH"
$bindir
の前に$PATH
を追加する必要があることに注意してください。そうしないと、システム実行可能ファイルが上書きされません。 PATH
では、前に来る実行可能ファイルがより優先されるためです。
次のようなフルパスで呼び出します
/opt/myapp/bin/zenity
お使いのバージョンのzenityが/opt/myapp/bin/
にインストールされている場合。
たとえば、このために変数を使用することができます
ZENITY=/opt/myapp/bin/zenity
...
$ZENITY --question --text 'Reboot universe?'