程序关闭后如何保持 gnome 终端保持打开?

程序关闭后如何保持 gnome 终端保持打开?

我有以下打开 SSH 实例的快捷方式。如何修改它以便当 SSH 关闭时,终端保持打开状态?

[Desktop Entry]
Terminal=true
Type=Application
Name[en_US]=ssh
Icon=/logo_sprite.png
Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key [email protected] sudo -s"'

答案1

1. 第一个选项:编辑 gnome-terminal 设置

在 中gnome-terminal,转到首选项,选择“标题和命令”选项卡。然后单击下拉列表“命令完成时”,选择“保持终端打开”。

在此处输入图片描述


2. 如果您不想影响所有终端

您可以将其添加bash为最后一个命令。在我的测试中,

Exec=gnome-terminal -e 'bash -c "gedit; echo Monkey; bash"'

完成了这项工作。在您的命令中,您可能需要像这样执行:

Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key [email protected] sudo -s; bash"'


3. 保持终端打开,直到按下 Enter 键

另一个选项是将其放在read line命令末尾。在这种情况下,终端将保持打开状态,直到您点击Enter

根据我的测试:

Exec=gnome-terminal -e 'bash -c "gedit; echo Monkey; read line"'

或者可能在你的命令中:

Exec=gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash -c "ssh -t -i ~/dsa.key [email protected] sudo -s; read line"'

笔记

  • 请注意,由于此启动器调用了其“主”命令,因此此启动器将从gnome-terminalUnity Launcher 中的自身应用程序启动器“窃取”其他可能的窗口。更简洁的方法是将该命令添加为现有启动器(或您喜欢的任何其他启动器)gnome-terminal的快捷方式。gnome-terminal
  • 由于启动器中的命令已经调用gnome-terminal,因此无需再设置Terminal=true

答案2

您只需在命令末尾添加“$SHELL”变量即可实现此目的。请参阅以下 Exec=.... 行中的示例。

[Desktop Entry]
Type=Application
Terminal=true
Name=MDS Control
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c 'Your command;$SHELL'"
Categories=Application;
Name[en_US]=MDS-Control

答案3

我花了几分钟研究这段代码。我想我找到了解决方案。这是我的代码(在细节方面有点过于简单):

[Desktop Entry]
Terminal=true
Type=Application
Name[en_US]=ssh
Exec=gnome-terminal -e 'bash -c "ssh"' && gnome-terminal --geometry=... --window-with-profile=... --title=... -e 'bash'

希望这可以帮助!

我刚刚添加了一行代码,使用 && 命令通过原始 bash 执行 gnome-terminal。

编辑:我刚意识到有人已经解决了这个问题!!哎呀!

相关内容