gpt4 book ai didi

linux - 脚本执行后避免 gnome-terminal 关闭?

转载 作者:IT老高 更新时间:2023-10-28 12:31:46 33 4
gpt4 key购买 nike

我创建了一个 bash 脚本,它可以打开多个 gnome 终端,通过 ssh 连接到教室计算机并运行脚本。

如何避免 gnome-terminal 在脚本完成后关闭?请注意,我还希望能够在终端中输入更多命令。

这是我的代码示例:

gnome-terminal -e "ssh root@<ip> cd /tmp && ls"

最佳答案

据我了解,您希望 gnome-terminal 打开,让它执行一些命令,然后放到提示符处,这样您就可以输入更多命令。 Gnome-terminal 不是为此用例设计的,但有一些解决方法:


让 gnome-terminal 运行 bash 并告诉 bash 运行你的命令,然后启动一个新的 bash

$ gnome-terminal -- bash -c "echo foo; echo bar; exec bash"

或者如果命令在脚本中

$ gnome-terminal -- bash -c "./scripttorun; exec bash"

所有命令完成后,第一个 bash 将终止。但是最后一个命令是一个新的 bash,它将继续运行。而且由于某些东西仍在运行,因此 gnome-terminal 不会关闭。


让 gnome-terminal 使用准备好的 rcfile 运行 bash,该 rcfile 会运行您的命令

准备somercfile:

source ~/.bashrc
echo foo
echo bar

然后运行:

$ gnome-terminal -- bash --rcfile somercfile

bash 将在运行 somercfile 后保持打开状态。

我必须承认我不完全理解为什么 --rcfile 有这种行为,但确实如此。


让 gnome-terminal 运行一个脚本,该脚本运行你的命令,然后放到 bash

准备scripttobash:

#!/bin/sh
echo foo
echo bar
exec bash

将此文件设置为可执行文件。

然后运行:

$ gnome-terminal -- ./scripttobash

为了完整性

如果您只想能够读取命令的输出并且不需要交互

  1. 转到首选项(汉堡按钮 -> 首选项)
  2. 转到配置文件(标准或创建新配置文件)
  3. 转到命令选项卡
  4. 当命令退出时 -> 保持终端打开

我建议为这个用例创建一个新的配置文件。

像这样使用配置文件:

gnome-terminal --profile=holdopen -- ./scripttorun

每种方法都有它的怪癖。你必须选择,但要明智地选择。

我喜欢第一个解决方案。它不需要额外的文件或配置文件。命令说明了它的作用:运行命令然后再次运行 bash。

说了这么多,既然您在示例中使用了 ssh,您可能想看看 pssh(并行 ssh)。这里有一篇文章:https://www.cyberciti.biz/cloud-computing/how-to-use-pssh-parallel-ssh-program-on-linux-unix/

关于linux - 脚本执行后避免 gnome-terminal 关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512055/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com