screen /bin/bash 执行脚本,然后进入交互式 shell

screen /bin/bash 执行脚本,然后进入交互式 shell

我正在使用 .byobu/windows 启动一些屏幕会话,并且我正在尝试启动一个脚本,该脚本将在完成后退出到交互式 shell。这可能吗?

我试过了:

screen -t test /bin/bash -i /path/to/script
screen -t test /bin/bash - /path/to/script

我意识到我可以在脚本末尾添加 /bin/bash ,但我不希望将其作为在 shell 中运行脚本时的解决方案...

答案1

如果使用相同的 shell 很重要,请使用该--rcfile标志。

$ cat test.bashrc 
ls
PS1='TEST \$'
$ screen -t test bash --rcfile test.bashrc -i
a.file  b.file  test.bashrc
TEST $

如果您.bashrc正在设置环境,请务必获取它的来源。

答案2

我发现运行命令并将输出和交互式 shell 留在屏幕内的唯一合理方法是使用“stuff”命令来执行命令:

screen -t title1 bash
stuff 'ls /tmp^M'  # in vim type control-v control-m to insert the return at the end

答案3

如果可能的话,只需启动两个命令。

screen -t test /bin/bash /path/to/script; /bin/bash

如果您只能启动一个命令,请尝试以下操作:

/bin/bash -c 'screen -t test /bin/bash /path/to/script; /bin/bash'

相关内容