我创建了一个 bash 脚本,它打开了几个 gnome 终端,通过 ssh 连接到教室计算机并运行一个脚本。
如何避免 gnome-terminal 在脚本完成后关闭?请注意,我还希望能够在终端中输入更多命令。
这是我的代码示例:
gnome-terminal -e "ssh root@<ip> cd /tmp && ls"
原文由 Marten Bauer 发布,翻译遵循 CC BY-SA 4.0 许可协议
我创建了一个 bash 脚本,它打开了几个 gnome 终端,通过 ssh 连接到教室计算机并运行一个脚本。
如何避免 gnome-terminal 在脚本完成后关闭?请注意,我还希望能够在终端中输入更多命令。
这是我的代码示例:
gnome-terminal -e "ssh root@<ip> cd /tmp && ls"
原文由 Marten Bauer 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.2k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答782 阅读✓ 已解决
2 回答3.2k 阅读
据我了解,您希望 gnome-terminal 打开,让它执行一些命令,然后放到提示符处,以便您可以输入更多命令。 Gnome-terminal 不是为此用例设计的,但有一些解决方法:
让 gnome-terminal 运行 bash 并告诉 bash 运行你的命令,然后启动一个新的 bash
或者如果命令在脚本中
完成所有命令后,第一个 bash 将终止。但是最后一个命令是一个新的 bash,它将继续运行。而且由于某些东西仍在运行,因此 gnome-terminal 不会关闭。
让 gnome-terminal 使用准备好的
rcfile
运行 bash,它会运行您的命令准备
somercfile
:然后运行:
bash 将在运行 somercfile 后保持打开状态。
我必须承认我不完全理解为什么
--rcfile
有这种行为,但确实如此。让 gnome-terminal 运行一个脚本,该脚本运行你的命令,然后放到 bash
准备
scripttobash
:将此文件设置为可执行文件。
然后运行:
为了完整性
如果您只想能够读取命令的输出并且不需要交互
我建议为这个用例创建一个新的配置文件。
像这样使用配置文件:
每种方法都有它的怪癖。你必须选择,但要明智地选择。
我喜欢第一个解决方案。它不需要额外的文件或配置文件。并且命令说明了它的作用:运行命令然后再次运行 bash。
综上所述,由于您在示例中使用了 ssh,您可能想看看
pssh
(并行 ssh)。这里有一篇文章: https ://www.cyberciti.biz/cloud-computing/how-to-use-pssh-parallel-ssh-program-on-linux-unix/