システム端末を開く Bash コマンド

システム端末を開く Bash コマンド

私はオープンソースのRTSゲームであるZero-K用のLinuxインストーラ(zero-k.info)を作成しています。使用されますが、インストールする必要がありますzenity。まだ持っていない人が多いので、スクリプト経由でインストールする必要があります。dialogszenityzenity

端末を開いてフィードバックを提供せずにユーザーシステムに何かをインストールしたくありません。フィードバックがなければ、実際にインストール中に何も起こらないように見えるかもしれません。問題は、スクリプトが1つxfce4-terminalまたはgnome-terminal別のDE特定の端末で開く必要があることです。これは、各DEが異なるスクリプトを持つ必要があることを意味します。

スクリプトが使用するOS/DEで使用する端末を開くコマンドはありますか?

答え1

私が知る限り、xtermX 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-emulatorRaduの回答を実装するときに最初に存在することを確認できます。

関連情報