如何防止終端在啟動的程式結束時關閉?

如何防止終端在啟動的程式結束時關閉?

如果我像這樣啟動一個終端(任何終端,例如 urxvt)urxvt -e sleep 5,則會啟動一個新終端,但 5 秒後終端將關閉,因為sleep程式已結束。如何在命令列上使用程式啟動終端,但在該進程結束後讓終端機保持活動狀態?

在實踐中,我真正想做的是urxvt -e tmux new-session top,它使用正在運行的 tmux 會話來開啟 urxvt top。但當我按下q,top結束時,也會導致 tmux 和 urxvt 結束。我希望當我退出時top被帶到 tmux 中的 shell。

答案1

終端機 (tmux) 在執行您告訴它執行的命令時關閉。如果您想先執行top互動式 shell,則需要告訴它執行該操作。組合命令是 shell 的工作,因此運行一個中間 shell(不是互動的)並告訴連續運行這兩個命令。

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

答案2

一種可能性:

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

重點是bash在初始命令完成後執行 shell(在本例中)。不幸的是,簡單gnome-terminal -e 'sleep 5; bash'是不可能的,因為整個句子sleep 5; bash被解釋為一個命令。

相關內容