web-dev-qa-db-ja.com

スクリプトでZenityのカスタムバージョンを使用/バンドルするにはどうすればよいですか?

Zenityを使用してスクリプトを書いています。ただし、zenity 3.4.0にはバグがあり(最新のUbuntuバージョンで修正されています)、0または1ではなく終了コード139が返されます。ただし、バグがまだ存在するシナリオで使用する必要があります。

したがって、解決策は、カスタムzenity実行可能ファイルをバンドルすることです。しかし、スクリプト内のカスタムコマンドでzenityコマンドをオーバーライドするにはどうすればよいですか?

1
satya164

システムのデフォルトの代わりにカスタムzenity実行可能ファイルを使用するには、それをディレクトリに配置し、そのディレクトリをPATHに追加します。

実行可能ファイルをディレクトリ$bindirに配置したとします。

次に、$bindirPATH変数に追加できます。

export PATH="$bindir:$PATH"

$bindirの前に$PATHを追加する必要があることに注意してください。そうしないと、システム実行可能ファイルが上書きされません。 PATHでは、前に来る実行可能ファイルがより優先されるためです。

1
satya164

次のようなフルパスで呼び出します

/opt/myapp/bin/zenity

お使いのバージョンのzenityが/opt/myapp/bin/にインストールされている場合。

たとえば、このために変数を使用することができます

ZENITY=/opt/myapp/bin/zenity
...
$ZENITY --question --text 'Reboot universe?'
0
Florian Diesch