我有以下打开 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-terminal
Unity 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。
编辑:我刚意识到有人已经解决了这个问题!!哎呀!