新しいターミナルを開き、この新しいターミナルで指定されたコマンド セットを実行するためのコマンド構造は何ですか?

新しいターミナルを開き、この新しいターミナルで指定されたコマンド セットを実行するためのコマンド構造は何ですか?

私はLinux Mint 19.03を使用しています

まず第一に、私のこの質問が重複していると思われる可能性のある質問のほとんどを私は読んだことを保証します。

ここで、基本的には、ターミナル ウィンドウに何かを入力して新しいターミナル ウィンドウを開き、コマンドを実行したいと思います。

このようなもの:

[the part I am asking of] "echo $PATH; read"

このコードは新しいターミナルを開き、$PATH 変数を表示して読み取る必要があります。これはターミナルを停止するためだけです。

x-terminal-emulator -eまたは を 試してみました x-terminal-emulator -c が -x 、これを正しく実行することはできませんでした。同様の質問に対するこの SE のすべての回答は両方とも古い回答であり、-e または -x を使用していましたが、それらのオプションは非推奨であると記載されています。

では、これを実現する最も適切な方法は何でしょうか?

ありがとう。

答え1

x-terminal-emulatorシェルは単独では起動しません。この-eオプションで起動できるのは実行可能ファイルだけです。

echoは実行可能ファイル ( /bin/echo)として使用できますが、 がないreadbash内部コマンドは失敗しますbash。したがって、新しいウィンドウへの出力はウィンドウを開くよりも速く行われ、 がread失敗すると、ウィンドウは表示される前に閉じられます。

これはうまくいくでしょう:

x-terminal-emulator -e "bash -c 'echo $PATH; read'"

ここで、シェルx-terminal-emulatorが起動しbash、 が実行されますecho $PATH; read。および は内部コマンドとしてecho特にread使用できるため、コマンドは失敗せず、入力を待機し、キーが押されるまでウィンドウが開いたままになります。bashread

関連情報