web-dev-qa-db-ja.com

タスクが完了したら、xtermを開いたままにします

xterm -eコマンドで実行する自動テストがあります。

xterm -e  RunMyTests

テスト実行の最後に、結果の要約といくつかの統計を標準出力に出力します。

結果を確認できるように、xtermを開いたまま表示したいのですが。
(非アクティブの場合は、私が見る限り問題ありません)

Xtermを手動で開始して、そこでテストを実行できることはわかっています。
または、後で調べるためにテスト出力をファイルにリダイレクトすることもできます。
または、新しいウィンドウを生成する代わりに、現在のxtermでテストを実行することもできます。
これらはすべて機能する可能性がありますが、理想的ではありません。

作業が完了した後もxtermウィンドウを開いたままにする方法はありますか?

9
abelenky

問題は、xtermでシェルが実行されておらず、テストが完了したときにシェルが元に戻ることです。

これを試して。

xterm -e "echo hi;bash"

または

xterm -e "echo hi;read"
11
user606723

Xterm(1)から:

   -hold   Turn on the hold resource, i.e.,  xterm  will  not  immediately
           destroy  its  window when the Shell command completes.  It will
           wait until you use the window manager to destroy/kill the  win‐
           dow,  or  if you use the menu entries that send a signal, e.g.,
           HUP or KILL.

標準コマンド:xterm -hold "echo I'm a boy"

Gambasコード:exec["xterm", "-hold", "-e", "ps aux"

30
AndresVia

通常はターミナルを開いてから環境スクリプトを読み込んでから、他のコマンドを続行する場合、lxterminalがすべて使用可能な場合に次のことが機能することがわかりました。

lxterminal -e bash -c "< path to env script \> bash --noprofile"

例えば:

lxterminal -e bash -c "/home/pi/linuxcnc-dev/scripts/rip-environment bash --noprofile"

これにより、ソース環境を上書きしないbashを実行するために、環境スクリプトをソースするbashを実行するターミナルウィンドウが作成されます。結局、それは質問に答えるソース環境でターミナルを開いたままにします。最初の-e bashを削除すると、lxterminalがプロンプトなしでハングします。

1
ztalbot