ターミナルエミュレータを起動する最もポータブルな方法は何ですか?


14

ターミナルを起動してコマンドを実行するスクリプトを作成する必要があり、さまざまなシステムで動作する必要があるとします。安全でポータブルな方法でそれを行うにはどうすればよいですか?

されxterm、常にインストールされていますか?GUIを備えた* nixにはターミナルエミュレータが必要であると思います。どうすれば到達できますか?Debianシステムに Red Hatで動作するものはないようですx-terminal-emulator、Linux以外の* nix はありません


これは可能性がありますexpect
レッドクリケット

@RedCricket expect?どうやって?ユーザーに端末に入力するように依頼しますか?
テルドン

..好奇心が強い、なぜこれをする必要があるか。おそらく、代替ソリューションを提案できます。
user606723

@ user606723基本的な好奇心。POSIXやopendesktopで定義されたデフォルトのターミナルエミュレーター(答えはノーのように見えます)などがあるかどうか疑問に思います。この SUの質問に対する反応として来ました。
テルドン

ターミナルエミュレータを起動する必要があるのか​​、実際にシェルを取得するだけなのか。それはまったく異なるニーズです。
ライライアン

回答:


10

できるとは思わない。xtermどこにでもインストールする必要はなく、実際にはおそらくデフォルトではないでしょう。特に、独自の端末を提供するデスクトップ環境が使用されている場合。

私はあなたの最善の策は、いくつかの異なる端末の存在を確認するために、おそらくだと思います(たとえば、xdg-terminalx-terminal-emulatorgnome-terminalkonsolexterm)。そして、xdg-terminalを実際にFreeDesktop.orgの標準に追加することに向けて努力するかもしれません。

それから、異なる端末にはコマンドを実行する異なる方法があり、時には同じ端末の異なるバージョンでさえあることがわかります。例えば、Debian Bug#648271を参照してください。

また、おそらくadmin / userにカスタムコマンドを設定する方法を提供する必要があります。きっと必要になるでしょう。


ええ、これはSU に関する質問によって促されました、そして、私はcaseステートメントの束よりも簡単な方法があることを望んでいました。
テルドン

1
@terdon単純な方法は、かなり依存性の軽いターミナルをスクリプトの要件としてリストし、それを使用することだと思います。
デロバート

実行時に表示されていたターミナルウィンドウはxinitどうですか?何年もそうしxtermていませんが、それはセッションを開始できる空の(?)ウィンドウを持つ単純なXサーバーをロードするために使用されていました。ことを意味するものでないことを、いくつかの端末エミュレータはXにインストールされていますか?
テルドン

以前は@terdonでしたが、xorgの人々はXを多数のパッケージに分割しました。(その端末はおそらくxtermでした)。しかし、簡単なチェックで、必要であればシステムからxtermを削除できることがわかりました。
デロバート

@terdonこれは、従来の「デフォルト」のX端末エミュレータであるxtermです。ただし、常にインストールされるとは限りません。IIRCには、デフォルトのUbuntuインストールにはgnome-terminalのみが含まれ、xtermは含まれません(Kubuntuの場合、konsoleなどになります)。
ジル 'SO-悪であるのをやめる'

3

ラッパーを使用する必要があります。i3 WMには良いものが含まれています。ここで説明されています:http : //build.i3wm.org/docs/i3-sensible-terminal.html

これをスクリプトのシェル関数にコピーするだけです:http : //code.stapelberg.de/git/i3/tree/i3-sensible-terminal


これは良いスタート(+1)ですが、限られた数の端末のみをチェックします(そして、whichこれは悪い考えです
terdon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.