まず第一に、私のこの質問が重複していると思われる可能性のある質問のほとんどを読んだことを保証できます。
さて、基本的にはターミナルウィンドウに何かを入力して新しいターミナルウィンドウを開き、コマンドを実行したいと思います。
このようなもの:
[the part I am asking of] "echo $PATH; read"
このコードは新しいターミナルを開く必要があり、$ PATH変数が表示され、読み取りはターミナルを停止するためだけのものです。
私は試した x-terminal-emulator -e
またはx-terminal-emulator -c
または-x
しかし、これを正しく行うことはできませんでした。同様の質問に対するこのSEのすべての回答は両方とも古い回答であり、-eまたは-xを使用していましたが、これらのオプションは非推奨であると記載されています。
それで、これを達成するための最も適切な方法は何ですか?
ありがとう。
x-terminal-emulator
はそれ自体ではシェルを開始しません。これにより、実行可能ファイルのみが-e
オプションで開始されます。
echo
は実行可能ファイル(/bin/echo
)として使用できますが、read
内部コマンドとしてのbash
はbash
なしでは失敗します。したがって、新しいウィンドウでの出力は、ウィンドウを開くよりも速く実行され、read
が失敗すると、ウィンドウが表示される前に閉じられます。
これでうまくいきます:
x-terminal-emulator -e "bash -c 'echo $PATH; read'"
ここで、x-terminal-emulator
はbash
シェルを開始し、シェルはecho $PATH; read
を実行します。 echo
および特にread
がbash
内部コマンドとして使用できるようになったため、read
コマンドは失敗せず、入力を待機します。これにより、ウィンドウが開いたままになります。キーが押されるまで。