我想启动 GNU screen,其中的一些 shell 命令,然后使用不同的命令打开新的 screen 窗口 - 所有这些都是通过脚本自动完成的。可以吗?
更新
执行命令后不应关闭屏幕窗口,我只想保留(并分离)屏幕会话
答案1
您可以将命令放在文件中,例如,myscreenrc
如下所示:
screen command1
screen command2
screen command3
然后使用选项screen
和-c
文件名称执行,例如,
screen -c myscreenrc
更新
回答更新的问题。我用于测试的命令是screen vim foo
和screen 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