gnu 屏幕自动化

gnu 屏幕自动化

我想启动 GNU screen,其中的一些 shell 命令,然后使用不同的命令打开新的 screen 窗口 - 所有这些都是通过脚本自动完成的。可以吗?

更新

执行命令后不应关闭屏幕窗口,我只想保留(并分离)屏幕会话

答案1

您可以将命令放在文件中,例如,myscreenrc如下所示:

screen command1
screen command2
screen command3

然后使用选项screen-c文件名称执行,例如,

screen -c myscreenrc

更新

回答更新的问题。我用于测试的命令是screen vim fooscreen vim bar,所以我没有看到屏幕关闭问题。下面的方法解决了屏幕关闭问题,但似乎有点不方便。

screen bash -c 'ls foo; exec bash -i'
screen bash -c 'ls bar; exec bash -i'

ls只是一个用于测试这个问题的方便的命令。

更新 #2

另一种方法是从 shell 的 rc 文件而不是 screen 的 rc 文件启动命令。不过,每个命令都需要另一个文件。例如,要在窗口top中运行screen,这样退出后top会返回到bash同一窗口中的提示符,请创建一个名为 的文件runtop,其中包含以下内容:

. ~/.bashrc
top

然后将这一行放入我们正在调用的文件中screenrc

screen bash --rcfile ~/runtop -i

screen开始

screen -c screenrc

相关内容