
如果我像這樣啟動一個終端(任何終端,例如 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
被解釋為一個命令。