起動したプログラムが終了したときに端末が閉じないようにする方法は? [コピー]

起動したプログラムが終了したときに端末が閉じないようにする方法は? [コピー]

このような端末(urxvtなどの端末)を起動すると、新しい端末が起動しますが、5秒後にプログラムが終了したため、端末はurxvt -e sleep 5閉じます。sleepコマンドラインのプログラムで端末を起動し、そのプロセスが終了しても端末をアクティブに保つにはどうすればよいですか?

実際に私が本当にしたいのは、urxvt -e tmux new-session top実行中のtmuxセッションを使用してurxvtを開くことですtop。しかし、qendを押すとtoptmuxとurxvtも終了します。終了時にtoptmuxのシェルに移動したいと思います。

答え1

実行を指示したコマンドの実行中に、端末(tmux)が閉じます。対話型シェルを最初に実行するには、そうするように指示するtop必要があります。コマンドを結合するのはシェルの作業なので、中間シェル(対話型ではない)を実行してそれこれら2つのコマンドを連続して実行します。

urxvt -e tmux new-session sh -c 'top; "$SHELL"'

答え2

1つの可能性:

gnome-terminal -e sh -c "sleep 5; bash"

要点は、bash初期コマンドが完了した後(この場合)シェルを実行することです。残念ながら、gnome-terminal -e 'sleep 5; bash'文全体がステートメントsleep 5; bashとして解釈されるので、単純さは不可能です。

関連情報