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

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

私は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起動します。特別なコマンドを内部コマンドとして使用できるため、コマンドは失敗せずに入力を待つため、キーが押されるまでウィンドウが開いたままになります。bashecho $PATH; readechoreadbashread

関連情報