私はオープンソースのRTSゲームであるZero-K用のLinuxインストーラ(zero-k.info)を作成しています。使用されますが、インストールする必要がありますzenity
。まだ持っていない人が多いので、スクリプト経由でインストールする必要があります。dialogs
zenity
zenity
端末を開いてフィードバックを提供せずにユーザーシステムに何かをインストールしたくありません。フィードバックがなければ、実際にインストール中に何も起こらないように見えるかもしれません。問題は、スクリプトが1つxfce4-terminal
またはgnome-terminal
別のDE特定の端末で開く必要があることです。これは、各DEが異なるスクリプトを持つ必要があることを意味します。
スクリプトが使用するOS/DEで使用する端末を開くコマンドはありますか?
答え1
私が知る限り、xterm
X Window Systemの標準端末エミュレータです。したがって、Linuxに似たシステムには必ずインストールする必要があります。これを開いてコマンドを実行するには、次のものを使用できます。
xterm -e "command [args]"
man xterm
とを参照してくださいxterm -help
。
外部に他の端末エミュレータがあるかどうかを確認するには、xterm
次の例を使用できます。
if hash gnome-terminal 2>/dev/null; then #if gnome-terminal exists
gnome-terminal -e "command [args]"
elif hash konsole 2>/dev/null; then #if konsole exists
konsole -e "command [args]"
#check the existence of some other terminal emulators here
else #you don't need to check the existence of xterm; this should be installed in any Linux like system
xterm -e "command [args]"
答え2
Debianおよびその派生製品(Ubuntu、Mintなど)で使用されているの/usr/bin/x-terminal-emulator
は、Debianの代替システムによって管理されるシンボリックリンクであるため、常にシステムが好むターミナルエミュレータを指します。
RHEL、Fedora、Slackware、または他の多くのディストリビューションを使用している場合は役に立ちませんが、/usr/bin/x-terminal-emulator
Raduの回答を実装するときに最初に存在することを確認できます。